约定

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.0,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

约定

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

方法名称

当一个对象与相关的“事物”(对象,参数,…)有一个“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”和“replacxxx”非常相似,但有一个显著的区别:“setXXX”可以替换或向关系中添加新元素。另一方面,"replaceXXX"不能添加新元素。如果将一个无法识别的键传递给“replaceXXX”,则必须抛出异常。

的用法

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

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

1 2 3
/ * * *@deprecated自2.8版起,将在3.0中移除。请改用XXX。* /

弃用消息应该指出类/方法被弃用的版本,将被移除的版本,以及在可能的情况下,该特性是如何被替换的。

一个PHPE_USER_DEPRECATED错误还必须触发,以帮助迁移的人开始一个或两个次要版本之前的版本,该功能将被删除(取决于删除的重要性):

1
@trigger_error ('XXX()自2.8版起已弃用,并将在3.0中删除。用XXX代替。”, E_USER_DEPRECATED);

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

当弃用整个类时trigger_error ()调用应该放在名称空间和use声明之间,就像下面的例子一样ArrayParserCache

12 3 4 5 6 7 8 9 10 11 12
名称空间欧宝娱乐app下载地址组件ExpressionLanguageParserCache;@trigger_error (“的”__NAMESPACE__\ArrayParserCache类自3.2版起已弃用,并将在4.0中移除。改用Symfon欧宝娱乐app下载地址y\Component\Cache\Adapter\ArrayAdapter类。', E_USER_DEPRECATED);使用欧宝娱乐app下载地址组件ExpressionLanguageParsedExpression/ * * *@authorAdrien Brault < Adrien . Brault@gmail.com> * *@deprecatedArrayParserCache类自3.2版起已弃用,并将在4.0中移除。改用Symfon欧宝娱乐app下载地址y\Component\Cache\Adapter\ArrayAdapter类。* /ArrayParserCache实现了ParserCacheInterface
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。