Ссылаясь на Есть ли статический анализатор кода [например, Lint] для файлов PHP? - Я ищу, как оценить содержание PHP файлы до того, как они будут зафиксированы разработчиками. Любое подходящее решение будет запускаться через перехватчики SVN, аналогичные ответу: Можно ли проверить синтаксис файла PHP из PHP?
Я наткнулся на это Автоматическая проверка синтаксиса PHP файлы при проверке в SVN , что я и ищу, однако ... php -l
недостаточно.
Например, с учетом кода:
if ($foo == 'bar') {
echo $foo;
}
Это приводит к:
2012/01/15 02:51:14 [ошибка] 694 # 0: * 164 FastCGI отправлено в stderr: "Уведомление PHP: неопределенная переменная : foo
По сравнению с:
if (isset($foo)) { echo $foo; }
Отчасти это сводится к обучению кодеров передовым методам. К сожалению, некоторые не учатся так быстро, как другие, и единственный способ обеспечить соблюдение стандартов кодирования - это чтобы уменьшить количество непроверенных или несовместимых с SVN данных.
Из первой ссылки в этом вопросе я попробовал:
$ foo
$ foo
if ( $ foo == 'bar') { \_ ЗДЕСЬ
==== / mnt / hgfs / workspace / блокнот / phpinfo.php: 44: Предупреждение: сравнение (unknown) == (string): невозможно проверить сравнение между неизвестными типами
$ foo
несмотря на то, что PHP Sanity Check указывает на то, что это правильный ответ Все по-своему интересны, но никто не улавливает эти проблемы, которые на самом деле обнаруживаются только во время выполнения.
Оцените вклад / мысли по этой теме.
РЕДАКТИРОВАТЬ
Был один автор, который предположил, что PHPLint - правильный путь. Я подумал, окей! Давайте попробуем еще раз, учитывая, что есть новая версия: phplint-pure-c-1.1_20120202 :
Простой тест .................. .. и, он работает и сообщает 1 ошибку, 1 предупреждение. Однако, если следующее добавлено ПЕРЕД оператором if
:
он не работает и сообщает 0 ошибок, 2 предупреждения.