合同组件

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.3,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

合同组件

契约组件提供了一组从Symfony组件中提取出来的抽象。欧宝娱乐app下载地址它们可以用于构建Symfony组件已经证明有用的语义——并且已经有了经过实战检验的实现。欧宝娱乐app下载地址

安装

合同是作为单独的包提供的,所以你可以只安装你的项目真正需要的:

1 2 3 4 5 6
Composer需要symfony欧宝娱乐app下载地址/cache-contractsComposer需要symfony欧宝娱乐app下载地址/event-dispatcher-contract作曲家需要symfony/depr欧宝娱乐app下载地址ecation-contractComposer需要symfony欧宝娱乐app下载地址/http-client-contracts作曲家需要symfony/服务合同欧宝娱乐app下载地址作曲家需要symfony/tran欧宝娱乐app下载地址slation-contract

请注意

如果在Symfony应用程序外部安装此组件,则必须要求欧宝娱乐app下载地址供应商/ autoload.php文件,以启用Composer提供的类自动加载机制。读这篇文章欲知详情。

使用

这个包中的抽象对于实现松耦合和互操作性非常有用。通过使用提供的接口作为类型提示,您可以重用与它们的契约匹配的任何实现。它可以是Symfony组件,欧宝娱乐app下载地址也可以是PHP社区提供的另一个包。欧宝下载链接

根据语义的不同,可以将某些接口与自动装配无缝地在类中注入服务。

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

设计原则

  • 契约按域划分,每个契约都有自己的子名称空间;
  • 契约是PHP接口、特征、规范文档块和参考测试套件的小而一致的集合,…;
  • 合同必须有一个经过验证的实现才能进入这个存储库;
  • 契约必须向后兼容现有的Symfony组件。欧宝娱乐app下载地址

实现特定契约的包应该在提供部分composer.json文件,使用欧宝娱乐app下载地址symfony / *实现公约。例如:

1 2 3 4 5 6
“…”“…”“提供”: {“欧宝娱乐app下载地址symfony /缓存实现”“1.0”}}

常见问题

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

在适用的情况下,所提供的契约是在其之上构建的PHP-FIGpsr。但是,PHP-FIG有不同的目标和不同的过程。欧宝娱乐app下载地址Symfony契约侧重于提供抽象,这些抽象本身是有用的,同时仍然与Symfony提供的实现兼容。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。
欧宝娱乐app下载地址Symfony 5.3支持通过JoliCode