约定
编辑该页面约定
的编码标准文档描述了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 ()
它必须抛出一个异常。
写一个更新日志条目
当添加一个新特性在一个小版本或不以为然的现有行为,有关的更新日志条目(s)应补充道。
新功能和用法必须描述的文件命名CHANGELOG.md
应该在修改组件的根目录,桥或包。
文件必须用减记语法和遵守以下约定:
- 主标题总是
更新日志
; - 每个条目必须添加到部分(如小版本
5.3
)作为一个列表元素; - 不允许有第三层部分;
- 消息应该遵循提交消息的约定:应该短,大写,不最后一段,使用一个命令动词开始行;
- 必须添加新条目的列表。
这是一个完整的示例供参考:
1 2 3 4 5 6 7
更新日志= = = = = = = = =5.3 - - - - - -*添加“MagicConfig”允许配置的东西
请注意
主要的更新日志- *
文件在ob娱乐下载symfony / symfony
根目录是自动生成的,当手动释放准备和不应该被修改。
不以为然的代码
不时地,一些类和/或方法中弃用框架;当一个功能实现不能改变由于向后兼容性的问题,但我们仍想提出一个“更好”的选择。在这种情况下,旧的可以实现弃用。
用法只能在下一个小版本的影响引入组件(或包,或桥,或合同)。他们可以特别引入先前支持版本,如果他们是至关重要的。
一个新类(或接口,或特征)不能作为弃用,或包含不赞成使用的方法。
不能介绍了弃用一种新方法。
功能被添加一个标记为弃用@deprecated
PHPDoc相关类、方法、属性…:
1 2 3
/ * * *@deprecated因为Symfob娱乐下载ony 5.1。* /
弃用消息必须注明版本的特性被弃用,只要有可能,它是如何取代:
1 2 3
/ * * *@deprecated因为Symfob娱乐下载ony 5.1,使用替代。* /
当更换比弃用另一个名称空间中类,其必须使用FQCN:
1 2 3
/ * * *@deprecated因为Symfob娱乐下载ony 5.1,使用\ B \替换。* /
弃用还必须被触发与迁移(需要帮助人们ob娱乐下载symfony / deprecation-contracts
包):
1
trigger_deprecation (“ob娱乐下载symfony /包名称”,“5.1”,”“% s”类是弃用,使用“% s”而不是”。,弃用::类、更换::类);
当不以为然的整个类trigger_deprecation ()
电话后应放置使用声明,比如在这个例子中ServiceRouterLoader:
1 2 3 4 5 6 7 8 9 10
名称空间ob娱乐下载\组件\路由\加载程序\DependencyInjection;使用ob娱乐下载\组件\路由\加载程序\ContainerLoader;trigger_deprecation (sob娱乐下载ymfony /路由的,“4.4”,”“% s”类是弃用,使用“% s”而不是”。,ServiceRouterLoader::类,ContainerLoader::类);/ * * *@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 - - - - - - - - - - - - - - - - - - -*删除“弃用”类,使用“替换”而不是
所有这些任务都是强制性的,必须在相同的请求。
删除过时的代码
删除废弃代码只能每两年一次,下一个主要版本的影响组件(6.0
分支,7.0
分支,等等)。
删除过时的代码时,必须添加到弃用的后果CHANGELOG.md
影响组件的文件:
1 2 3 4
5.0 - - - - - -*删除“弃用”类,使用“替换”而不是
这个任务是强制性的,必须在相同的请求。
命名命令和选项
命令和他们的选择应该命名和描述祈使式(即使用英语。“运行”而不是“运行”,“列表”,而不是“列表”)。使用祈使语气的简洁和符合类似的命令行接口(比如Unix手册页)。