auburnite/

contracts

从Auburnite组件中提取的一系列抽象

0.1.x-dev 2024-01-15 02:17 UTC

This package is auto-updated.

Last update: 2024-09-15 03:49:59 UTC


README

从Auburnite组件中提取的一系列抽象。

设计原则

  • 合约根据领域划分,每个领域有自己的子命名空间;
  • 合约是一组小而一致的PHP接口、特性、规范性docblocks以及适用的参考测试套件;
  • 所有合约都必须有一个经过验证的实现才能进入此存储库;
  • 它们必须与现有的Auburnite组件向后兼容。

实现了特定合约的包应在其"composer.json"文件的"provide"部分列出它们,使用约定(例如 "provide": { "auburnite/exception-implementation": "1.0" })。

常见问题解答

如何使用此包?

此包中的抽象有助于实现松散耦合和互操作性。通过使用提供的接口作为类型提示,您可以重用符合其合约的任何实现。这可能是一个Auburnite组件,也可能是PHP社区提供的另一个组件。

根据其语义,某些接口可以与自动注入结合使用,以无缝地将服务注入到您的类中。

其他接口可能有助于作为接口标签,提示在自动配置或手动服务标记(或您的框架提供的任何其他方式)使用时可以启用的特定行为。

这与PHP-FIG的PSRs有何不同?

适用时,提供的合约是在PHP-FIG的PSRs之上构建的。但该小组有不同的目标和不同的流程。在这里,我们专注于提供有用的抽象,同时仍然与Symfony提供的实现兼容。虽然不是主要目标,但我们希望声明的合约可以直接或间接地贡献给PHP-FIG。

资源