我试图理解为什么PSR2在新行上有类和方法的大括号,而其余的没有。我会说,如果大括号总是在新行上,那么阅读代码要容易得多。
class Foo extends Bar implements FooInterface
{
public function sampleFunction($a, $b = null)
{
if ($a === $b) {
}
有人可以解释背后的逻辑:
打开控制结构的大括号必须在同一条线上,并且关闭大括号必须在主体后面的下一行。
答案 0 :(得分:3)
我对此处推理的理解基本上是为了防止连续代码块变得过长。
例如,假设我有一个用PSR-2风格编写的50行函数。如果该函数包含10个if()
条件和5个循环,那么我的规则下的函数将为65行。
由于它是一个单一的功能,我需要能够将它作为一个单独的实体使用,所以能够一次看到它真的很有帮助。使用50行功能,这是可行的。如果函数长度为65行,则会变得更加困难。
事实上,现在看着我的编辑器窗口,我一次可以看到30行,所以即使是50行功能也有点太长了,无需在IDE中重新调整大小或移除停靠的面板即可轻松管理。 / p>
现在我知道干净的代码规则会说50行函数无论如何都要太长,需要重构。我同意这一点。但是猜猜:50线以上的功能很常见;我必须一直处理它们,并且它们中不必要的空白区域越容易使用它们。
然而,最终,这只是对其背后根本原因的一种解释。
PSR-2的真正原因在于这是因为意见的共识如何下降。他们调查了所有框架和其他已建立PHP编码标准的人。所有这些不同的标准都存在,因为人们坐下来思考如何最好地格式化他们的代码。他们不同意,因为它是一个自以为是的主题,但有广泛的协议领域,这是形成PSR标准的原因。
答案 1 :(得分:1)
有几个原因。