symfony / contracts
从Symfony组件中提取的一组抽象
v3.5.0
2024-04-18 09:32 UTC
Requires
- php: >=8.1
- psr/cache: ^3.0
- psr/container: ^1.1|^2.0
- psr/event-dispatcher: ^1.0
Requires (Dev)
- symfony/polyfill-intl-idn: ^1.10
Conflicts
- ext-psr: <1.1|>=2
Replaces
- symfony/cache-contracts: v3.5.0
- symfony/deprecation-contracts: v3.5.0
- symfony/event-dispatcher-contracts: v3.5.0
- symfony/http-client-contracts: v3.5.0
- symfony/service-contracts: v3.5.0
- symfony/translation-contracts: v3.5.0
- 7.2.x-dev
- dev-main / 3.5.x-dev
- v3.5.0
- 3.4.x-dev
- v3.4.2
- v3.4.1
- v3.4.0
- 3.3.x-dev
- v3.3.0
- 3.2.x-dev
- v3.2.1
- v3.2.0
- 3.1.x-dev
- v3.1.1
- v3.1.0
- 3.0.x-dev
- v3.0.2
- v3.0.1
- v3.0.0
- 2.5.x-dev
- v2.5.3
- v2.5.2
- v2.5.1
- v2.5.0
- 2.4.x-dev
- v2.4.1
- v2.4.0
- 2.3.x-dev
- v2.3.1
- v2.3.0
- v2.2.0
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.1
- v2.0.0
- v1.10.0
- 1.1.x-dev
- v1.1.13
- v1.1.12
- v1.1.11
- v1.1.10
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.2
- v1.0.1
- v1.0.0
- v1.0.0-RC1
- v1.0.0-BETA1
This package is auto-updated.
Last update: 2024-09-06 06:02:59 UTC
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做出贡献。