Sniffer Snippet允许在新行上使用括号

Tho*_*rge 6 php codesniffer

是否有一个codeniffer片段允许/ force {}为每个函数/方法添加换行符?

基本上,强迫这样的事情:

if (TRUE)
{
     // Code logic
}
else
{
    // Code Logic
}
Run Code Online (Sandbox Code Playgroud)

public function test()
{
     // Code logic
}
Run Code Online (Sandbox Code Playgroud)

Hav*_*ock 6

是的,有一个准备好的.它被称为OpeningFunctionBraceBsdAllmanSniff你可以找到它/path/to/CodeSniffer/Standards/Generic/Sniffs/Functions.但这仅适用于功能声明.

对于控制结构,您可以从中获取/path/to/Standards/Squiz/Sniffs/ControlStructures/ControlSignatureSniff.php和调整模式数组

protected function getPatterns()
{
    return array(
            'try {EOL...} catch (...) {EOL',
            'do {EOL...} while (...);EOL',
            'while (...) {EOL',
            'for (...) {EOL',
            'if (...) {EOL',
            'foreach (...) {EOL',
            '} else if (...) {EOL',
            '} elseif (...) {EOL',
            '} else {EOL',
           );

}//end getPatterns()
Run Code Online (Sandbox Code Playgroud)

到,即

protected function getPatterns()
{
    return array(
            'try {EOL...} catch (...) {EOL',
            'do {EOL...} while (...);EOL',
            'while (...) {EOL',
            'for (...) {EOL',
            'if (...)EOL{',              // that's what you need
            'foreach (...) {EOL',
            '} else if (...) {EOL',
            '} elseif (...) {EOL',
            '} elseEOL{',               // and this
           );

}//end getPatterns()
Run Code Online (Sandbox Code Playgroud)

如果需要将相同的规则应用于其他控制结构,则可以通过更改数组中的模式来采用相同的方法.

更新:一个更清洁的解决方案当然是编写自己的类,扩展上面的内容并覆盖getPatterns()方法.