合同组件

编辑本页

合同组件

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

安装

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

1 2 3 4 5 6
Composer需要symfonyob娱乐下载/cache-contractsComposer需要symfonyob娱乐下载/event-dispatcher-contract作曲家需要symfony/deprob娱乐下载ecation-contractComposer需要symfonyob娱乐下载/http-client-contracts作曲家需要symfony/服务合同ob娱乐下载作曲家需要symfony/tranob娱乐下载slation-contract

请注意

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

使用

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

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

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

设计原则

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

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

1 2 3 4 5 6
“…”“…”“提供”: {“ob娱乐下载symfony /缓存实现”“3.0”}}

常见问题

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

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

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。
ob娱乐下载Symfony 6.2支持通过苏禄人
ob娱乐下载Symfony 6.2支持通过Les-Tilleuls.coop