是否有一个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)
是的,有一个准备好的.它被称为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()方法.