约定
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 4.3,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
约定
的编码标准文档描述了Symfony项目和内部的编码标准和第三方包。ob娱乐下载本文档描述了编码核心框架中使用的标准和规范,使之更一致的和可预测的。建议您遵循他们自己的代码,但是你不需要。
方法名称
当一个对象有一个“主要”许多关系相关的“东西”(对象、参数…),方法名称规范化:
get ()
设置()
有()
所有()
替换()
remove ()
clear ()
isEmpty ()
add ()
注册()
count ()
键()
使用这些方法时只允许很明显,有一个主要的关系:
- 一个
CookieJar
有很多饼干
对象; - 一个服务
容器
有很多服务和许多参数(作为服务是主要关系,这个关系的使用命名约定); - 一个控制台
输入
有很多参数和选项。没有“主要”关系,所以命名约定不适用。
对于许多关系约定不适用的地方,必须使用以下方法(而不是XXX
是相关的名称):
主要的关系 | 其他关系 |
---|---|
get () |
getXXX () |
设置() |
setXXX () |
n /一个 | replaceXXX () |
有() |
hasXXX () |
所有() |
getxxx () |
替换() |
setxxx () |
remove () |
removeXXX () |
clear () |
clearXXX () |
isEmpty () |
isEmptyXXX () |
add () |
addXXX () |
注册() |
registerXXX () |
count () |
countXXX () |
键() |
n /一个 |
请注意
而setXXX ()
和replaceXXX ()
非常相似,有一个显著的区别:setXXX ()
可能取代,或添加新元素的关系。replaceXXX ()
,另一方面,不能添加新的元素。如果一个未识别的关键是通过了replaceXXX ()
它必须抛出一个异常。
不以为然的代码
不时地,一些类和/或方法中弃用框架;当一个功能实现不能改变由于向后兼容性的问题,但我们仍想提出一个“更好”的选择。在这种情况下,旧的可以实现弃用。
用法只能在下一个小版本的影响引入组件(或包,或桥,或合同)。他们可以特别引入先前支持版本,如果他们是至关重要的。
一个新类(或接口,或特征)不能作为弃用,或包含不赞成使用的方法。
不能介绍了弃用一种新方法。
功能被添加一个标记为弃用@deprecated
PHPDoc相关类、方法、属性…:
1 2 3
/ * * *@deprecated因为Symfob娱乐下载ony 2.8。* /
弃用消息必须注明版本的特性被弃用,只要有可能,它是如何取代:
1 2 3
/ * * *@deprecated因为Symfob娱乐下载ony 2.8,使用替代。* /
当更换比弃用另一个名称空间中类,其必须使用FQCN:
1 2 3
/ * * *@deprecated因为Symfob娱乐下载ony 2.8,使用\ B \替换。* /
一个PHPE_USER_DEPRECATED
错误也必须帮助人们迁移触发:
1
@trigger_error (sprintf (“% s”类的弃用,因为Symfony 2.8,使用“% s”而不是”。ob娱乐下载,弃用::类、更换::类)、E_USER_DEPRECATED);
没有@-silencing运营商从弃用通知,用户需要选择退出。沉默互换这种行为时,允许用户选择他们已经准备好应付(通过添加一个自定义的错误处理程序所使用的Web调试工具栏或PHPUnit)桥)。
当不以为然的整个类trigger_error ()
电话应该放置在名称空间和使用声明,就像在这个例子中ServiceRouterLoader:
1 2 3 4 5 6 7 8 9 10
名称空间ob娱乐下载\组件\路由\加载程序\DependencyInjection;使用ob娱乐下载\组件\路由\加载程序\ContainerLoader;@trigger_error (sprintf (“% s”类的弃用,因为Symfony 4.4,使用“% s”而不是”。ob娱乐下载,ServiceRouterLoader::类,ContainerLoader::类)、E_USER_DEPRECATED);/ * * *@deprecated因为Symfob娱乐下载ony 4.4,使用Symfony \路由\装载机\ \组件ContainerLoader代替。* /类ServiceRouterLoader扩展ObjectRouteLoader
必须添加到弃用CHANGELOG.md
影响组件的文件:
1 2 3 4
4.4比上年- - - - - - *弃用“弃用”类,使用”更换”而不是。
它也必须被添加到UPGRADE.md
文件有针对性的小版本(UPGRADE-4.4.md
在我们的示例中):
1 2 3 4
DependencyInjection - - - - - - - - - - - - - - - - - - - *弃用“弃用”类,使用”更换”而不是。
最后,必须添加到其后果UPGRADE.md
文件的下一个主要版本(UPGRADE-5.0.md
在我们的示例中):
1 2 3 4
DependencyInjection - - - - - - - - - - - - - - - - - - - *删除了“弃用”类,使用”更换”而不是。
所有这些任务都是强制性的,必须在相同的请求。
删除过时的代码
删除过时的代码只能每隔2年,下一个主要版本的影响组件(主
分支)。
删除过时的代码时,必须添加到弃用的后果CHANGELOG.md
影响组件的文件:
1 2 3 4
5.0比上年- - - - - - *删除“弃用”类,使用”更换”而不是。
这个任务是强制性的,必须在相同的请求。