约定

编辑本页

约定

编码标准文档描述了Symfony项目以及内部和第三方包的编码标准。ob娱乐下载本文档描述了核心框架中使用的编码标准和约定,以使其更加一致和可预测。我们鼓励您在自己的代码中遵循它们,但您不需要这样做。

命名方法

当一个对象与相关的“事物”(对象,参数,…)有一个“main”many关系时,方法名被规范化:

  • get ()
  • 设置()
  • 有()
  • 所有()
  • 替换()
  • remove ()
  • clear ()
  • isEmpty ()
  • add ()
  • 注册()
  • count ()
  • 键()

只有在明确存在以下主要关系时,才允许使用这些方法:

  • 一个CookieJar有很多饼干对象;
  • 一个服务容器有许多服务和许多参数(由于服务是主要关系,命名约定用于此关系);
  • 一个控制台输入有许多参数和许多选项。没有“main”关系,因此命名约定不适用。

对于许多不适用该约定的关系,必须使用以下方法(其中XXX是相关事物的名称):

主要的关系 其他关系
get () getXXX ()
设置() setXXX ()
N/A replaceXXX ()
有() hasXXX ()
所有() getxxx ()
替换() setxxx ()
remove () removeXXX ()
clear () clearXXX ()
isEmpty () isEmptyXXX ()
add () addXXX ()
注册() registerXXX ()
count () countXXX ()
键() N/A

请注意

setXXX ()而且replaceXXX ()非常相似,但有一个显著的区别:setXXX ()可以替换或向关系中添加新元素。replaceXXX (),另一方面,不能添加新的元素。如果将无法识别的密钥传递给replaceXXX ()它必须抛出异常。

编写CHANGELOG条目

当在小版本中添加新特性或弃用现有行为时,应添加相关CHANGELOG的条目。

新特性和弃用特性必须在一个名为CHANGELOG.md它应该在修改后的组件、桥或包的根目录下。

该文件必须使用Markdown语法编写,并遵循以下约定:

  • 主标题总是更新日志
  • 每个条目必须添加到次要版本部分(如5.3)作为列表元素;
  • 不允许有第三级的部分;
  • 消息应遵循提交消息约定:行要短,首字母大写,不要以句点结尾,行首使用祈使句动词;
  • 必须将新条目添加到列表顶部。

这里有一个完整的例子供参考:

1 2 3 4 5 6 7
更新日志  =========5.3——添加“MagicConfig”这样就可以进行配置

请注意

主要的更新日志- *档案在ob娱乐下载symfony / symfony根目录是在准备发行版时自动生成的,永远不应该手动修改。

不以为然的代码

时不时地,框架中的一些类和/或方法会被弃用;当一个特性实现因为向后兼容性问题而无法更改时,就会发生这种情况,但我们仍然想提出一个“更好的”替代方案。在这种情况下,旧的实现可以弃用

弃用只能在受影响组件(或包、桥或契约)的下一个小版本中引入。如果它们非常重要,则可以在以前支持的版本中例外地引入它们。

一个新的类(或者接口,或者特性)不能作为废弃的引入,或者包含废弃的方法。

不能将新方法作为已弃用方法引入。

属性将某个特性标记为已弃用@deprecatedPHPDoc到相关类,方法,属性,…

1 2 3
/ * * *@deprecated从Symfoob娱乐下载ny 5.1开始。* /

弃用消息必须指明该特性被弃用的版本,以及在可能的情况下如何替换它:

1 2 3
/ * * *@deprecated从Symfoob娱乐下载ny 5.1开始,使用Replacement代替。* /

当替换对象在另一个命名空间而不是被弃用的类中时,必须使用它的FQCN:

1 2 3
/ * * *@deprecated从Symfoob娱乐下载ny 5.1开始,使用A\B\Replacement代替。* /

还必须触发弃用,以帮助人们进行迁移(需要ob娱乐下载symfony / deprecation-contracts包):

1
trigger_deprecation (“ob娱乐下载symfony /包名称”“5.1”““%s”类已弃用,请改用“%s”。”,弃用::类、更换::类);

当弃用整个类时trigger_deprecation ()调用应该放在use声明之后,就像这个例子中的fromServiceRouterLoader

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从Symfoob娱乐下载ny 4.4开始,改用Symfony\Component\Routing\Loader\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  -------------------删除“弃用”类,使用“替换”而不是

所有这些任务都是强制性的,必须在同一个pull请求中完成。

移除弃用代码

删除已弃用的代码只能每两年在受影响组件的下一个主要版本(6.0分支,7.0分支,等等)。

删除弃用代码时,必须将弃用的结果添加到CHANGELOG.md受影响部件文件:

1 2 3 4
5.0——删除“弃用”类,使用“替换”而不是

这个任务是强制性的,必须在同一个pull请求中完成。

命名命令和选项

命令及其选项应该使用祈使句语气来命名和描述。“run”代替“runs”,“list”代替“lists”)。使用命令式语气简洁且与类似的命令行界面(例如Unix手册页)一致。

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