约定

编辑该页面

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

这个页面的更新版本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 ()它必须抛出一个异常。

不以为然的代码

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

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

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

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

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

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

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

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

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

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

一个PHPE_USER_DEPRECATED错误也必须帮助人们迁移触发:

1
@trigger_error (sprintf (“% s”类的弃用,因为Symfony 2.8,使用“% s”而不是”。欧宝娱乐app下载地址,弃用::类、更换::类)、E_USER_DEPRECATED);

没有@-silencing运营商从弃用通知,用户需要选择退出。沉默互换这种行为时,允许用户选择他们已经准备好应付(通过添加一个自定义的错误处理程序所使用的Web调试工具栏或PHPUnit)桥)。

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

1 2 3 4 5 6 7 8 9 10
名称空间欧宝娱乐app下载地址\组件\路由\加载程序\DependencyInjection;使用欧宝娱乐app下载地址\组件\路由\加载程序\ContainerLoader;@trigger_error (sprintf (“% s”类的弃用,因为Symfony 4.4,使用“% s”而不是”。欧宝娱乐app下载地址,ServiceRouterLoader::类,ContainerLoader::类)、E_USER_DEPRECATED);/ * * *@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 - - - - - - - - - - - - - - - - - - - *删除了“弃用”,使用更换而不是

所有这些任务都是强制性的,必须在相同的请求。

删除过时的代码

删除过时的代码只能每隔2年,下一个主要版本的影响组件(分支)。

删除过时的代码时,必须添加到弃用的后果CHANGELOG.md影响组件的文件:

1 2 3 4
5.0比上年- - - - - - *删除“弃用”,使用更换而不是

这个任务是强制性的,必须在相同的请求。

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