symfony/contracts

从Symfony组件中提取的一组抽象

安装量: 56,960,934

依赖项: 101

建议者: 0

安全性: 0

星标: 3,813

关注者: 16

分支: 21


README

从Symfony组件中提取的一组抽象。

可用于构建Symfony组件已经证明有用的语义,并且已经过实战检验的实现。

设计原则

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

实现特定contracts的包应该在它们的"composer.json"文件的"provide"部分列出它们,使用symfony/*-implementation约定(例如:"provide": { "symfony/cache-implementation": "1.0" })。

常见问题解答

如何使用此包?

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

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

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

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

当适用时,提供的contracts是在PHP-FIG的PSR之上构建的。但该小组有不同的目标和流程。在这里,我们专注于提供有用的抽象,同时仍然与Symfony提供的实现兼容。尽管不是主要目标,但我们希望声明的contracts将直接或间接地为PHP-FIG做出贡献。

资源