我正在尝试找出使用phpcs
代码嗅探器强制执行的代码样式。
由于Symfony2的普及,使用其代码标准似乎是一种很好的做法。另一方面,它的代码风格基于PSR2,所以这似乎是应该使用的最基本的风格。
此外,在squizlabs/php_codesniffer
的基本安装中,不包括Symfony2标准,必须手动安装,而PSR2很容易获得。
所以我想知道Symfony2指南与PSR2相比的主要区别,以决定使用哪一个。
例如,我意识到Symfony2样式强制执行Concat operator must not be surrounded by spaces
,而PSR2忽略了这种情况。然而,我没有找到一种简单的方法来列出差异。我查看rulseset.xml
,但我不清楚它是如何设置的。
我感兴趣的是如何获得PSR2和Symfony2代码标准之间差异的完整列表。
答案 0 :(得分:17)
Symfony coding standards基本上扩展了PSR标准。 PSR-2没有为所有情况指定规则,因此Symfony标准在PSR-2之上添加了一些规则。
正如您所说,PHP CodeSniffer存储库不包含Symfony的规则集。 Symfony2规则集有多个第三方实现,因此它们与PSR-2规则集之间的确切差异列表取决于您选择的实现。
但是,在考虑Symfony和PSR标准(不是PHP CodeSniffer的规则集)之间的差异时,Symfony标准的一些补充是:
.
)setUp
和tearDown
方法)这些只是一些例子,请查看完整列表的Symfony编码标准。
在我看来,Symfony标准是有道理的,我尽可能地使用它们,甚至在Symfony项目之外。
答案 1 :(得分:10)
来自PhpStorm 2017.1。左侧Symfony,右侧PSR-2
但Symfony site处于相反的规则:
在与方法/函数相同的行上声明所有参数 名称,无论有多少参数;