PHP 风格指南一致性


PHP Style Guide Conformance

对于我刚刚开始的新项目,我认为遵循代码的样式指南可能是个好主意。我已经为自己确定了一种风格,但可以使用更多的结构,因为我的项目之间甚至有时在项目内部都有一些不同的东西。

现在我已经确定了这个风格指南:http://www.php-fig.org/psr/psr-2/

问题是,它说将代码行限制为 80 个字符,所以我在 ST3 中设置了该限制的标尺。我只是不确定在多行上拆分代码的好做法是什么。您将如何拆分下面的代码(它已经缩进了 8 个空格)?

$this->errorMessage = (isset($this->errorDefinitions[$errorNo])) ? $this->errorDefinitions[$errorNo] : $errorMessage;
或者最好通过

放弃速记表达而只写来符合指南:

if (isset($this->errorDefinitions[$errorNo])) {
    $this->errorMessage = $this->errorDefinitions[$errorNo];
} else {
    $this->errorMessage = $errorMessage;
}

样式指南中没有关于此主题的内容。谁能指出我正确的方向,或者告诉我在哪里可以找到有关"正确"方法的更多信息。我知道在这样做的方式上可能没有达成共识,但我想阅读您的意见。

您可以跨行分解速记:

$this->errorMessage = isset($this->errorDefinitions[$errorNo])
    ? $this->errorDefinitions[$errorNo] 
    : $errorMessage;

请记住,速记三元语句很棒...当它们简短而简单时!但是一旦你的条件变长,你只会让你的代码更难阅读、理解和最终维护。这就是为什么PSR-2有线路限制(部分)。

从我的角度来看,您的代码有点模糊区域。像上面这样分解它是可以的,但如果它更复杂(称为函数等),我会说放弃速记并采用if

最终,这是您的电话,正如您指出的那样,PSR-2不会在这个问题上着陆。