约定

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.2,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

约定

编码标准文档描述了Symfony项目和内部的编码标准和第三方包。欧宝娱乐app下载地址本文档描述了编码核心框架中使用的标准和规范,使之更一致的和可预测的。建议您遵循他们自己的代码,但是你不需要。

命名方法

当一个对象有一个“主要”许多关系相关的“东西”(对象、参数…),方法名称规范化:

  • 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”允许配置的东西

请注意

主要的更新日志- *文件在欧宝娱乐app下载地址symfony / symfony根目录是自动生成的,当手动释放准备和不应该被修改。

不以为然的代码

不时地,一些类和/或方法中弃用框架;当一个功能实现不能改变由于向后兼容性的问题,但我们仍想提出一个“更好”的选择。在这种情况下,旧的可以实现弃用

用法只能在下一个小版本的影响引入组件(或包,或桥,或合同)。他们可以特别引入先前支持版本,如果他们是至关重要的。

一个新类(或接口,或特征)不能作为弃用,或包含不赞成使用的方法。

不能介绍了弃用一种新方法。

功能被添加一个标记为弃用@deprecatedPHPDoc相关类、方法、属性…:

1 2 3
/ * * *@deprecated因为Symf欧宝娱乐app下载地址ony 5.1。* /

弃用消息必须注明版本的特性被弃用,只要有可能,它是如何取代:

1 2 3
/ * * *@deprecated因为Symf欧宝娱乐app下载地址ony 5.1,使用替代。* /

当更换比弃用另一个名称空间中类,其必须使用FQCN:

1 2 3
/ * * *@deprecated因为Symf欧宝娱乐app下载地址ony 5.1,使用\ B \替换。* /

弃用还必须被触发与迁移(需要帮助人们欧宝娱乐app下载地址symfony / deprecation-contracts包):

1
trigger_deprecation (“欧宝娱乐app下载地址symfony /包名称”,“5.1”,”“% s”类是弃用,使用“% s”而不是”。,弃用::类、更换::类);

当不以为然的整个类trigger_deprecation ()电话后应放置使用声明,比如在这个例子中ServiceRouterLoader:

1 2 3 4 5 6 7 8 9 10
名称空间欧宝娱乐app下载地址\组件\路由\加载程序\DependencyInjection;使用欧宝娱乐app下载地址\组件\路由\加载程序\ContainerLoader;trigger_deprecation (s欧宝娱乐app下载地址ymfony /路由的,“4.4”,”“% s”类是弃用,使用“% s”而不是”。,ServiceRouterLoader::类,ContainerLoader::类);/ * * *@deprecated因为Symf欧宝娱乐app下载地址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手册页)。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。