Я работаю с проектом с открытым исходным кодом и думал, что было бы неплохо реализовать автоматические изменения кода с phpmd.PHP Mess Detector дает ложные срабатывания
Это показало мне много ошибок в кодировании, которые я уже исправил. Но один из них сделал мне любопытным.
Рассмотрим следующий метод:
/**
*
* @param string $pluginName
*/
public static function loadPlugin($pluginName){
$path = self::getPath()."plugins/$pluginName/";
$bootPath = $path.'boot.php';
if(\is_dir($path)){
//Autoload classes
self::$classloader->add("", $path);
//If theres a "boot.php", run it
if(is_file($bootPath)){
require $bootPath;
}
}else{
throw new \Exception("Plugin not found: $pluginName");
}
}
Здесь phpmd говорит, что Else is never necessary
... Условный выражение с еще ветви не нужно. Вы можете переписать условия таким образом, чтобы другое не было необходимо, а код стал проще читать. ...
is_dir
возвратит ложь, когда данный путь является файлом или просто не существует, поэтому, на мой взгляд, этот тест не действует вообще.
Есть ли способ исправить это или просто игнорировать случаи, подобные этому?
Только наконечник. В CodeSniffer есть альтернатива Sniff: https://github.com/object-calisthenics/phpcs-calisthenics-rules#1-only-x-level-of-indentation-per-method –