合同组件
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 5.1,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
合同组件
契约组件提供了一组从Symfony组件中提取出来的抽象。ob娱乐下载它们可以用于构建Symfony组件已经证明有用的语义——并且已经有了经过实战检验的实现。ob娱乐下载
安装
合同是作为单独的包提供的,所以你可以只安装你的项目真正需要的:
1 2 3 4 5 6
$Composer需要symfonyob娱乐下载/cache-contracts$Composer需要symfonyob娱乐下载/event-dispatcher-contract$作曲家需要symfony/deprob娱乐下载ecation-contract$Composer需要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 /缓存实现”:“1.0”}}
常见问题
这与PHP-FIG的prs有何不同?
在适用的情况下,所提供的契约是在其之上构建的PHP-FIGpsr。但是,PHP-FIG有不同的目标和不同的过程。ob娱乐下载Symfony契约侧重于提供抽象,这些抽象本身是有用的,同时仍然与Symfony提供的实现兼容。
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。