Статический анализ и стандарты
Статический анализ кода через PHPStan или Psalm требует предварительной генерации ORM-аннотаций (php bitrix.php orm:annotate), раскрывающей виртуальные методы сущностей. Каталог ядра подключается к анализаторам как внешний источник типов данных, а соблюдение стандарта PSR-12 в проектной директории /local/ контролируется линтерами в пайплайнах CI/CD.
Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.
Что нужно понимать
-
1
PHPStan
-
2
PHP_CodeSniffer
-
3
Psalm
Материалы
Официальная документация
-
Аннотации классов Новая дока
-
Composer Новая дока
Проверь себя
PHPStan на local/ выдал тысячу ошибок «undefined method getName()» у объектов ORM. Код рабочий. Что не так?
Методы объектов ORM виртуальные, через __call, и без аннотаций анализатор их не видит. Нужно сгенерировать orm_annotations.php командой orm:annotate -m all и подключить его вместе с main/meta/orm.php в сканирование.
Почему анализатор не запускают на папку bitrix?
Это код вендора: править его нельзя, а после обновления он изменится. Ядро подключают только как источник типов через scanDirectories, проверяют local/.
Заказчик хочет единый стиль кода на проекте. PSR-12 или стиль ядра?
PSR-12 в своём модуле и компонентах, без попыток переформатировать шаблоны ядра и bitrix/. Шаблоны компонентов с альтернативным синтаксисом PHP лучше исключить из проверки или дать им отдельный набор правил.
Что сломается, если обязательный тест Монитора качества «пропустить» с комментарием?
Формально ничего: система позволяет это сделать. Ломается смысл отчёта — заказчик видит «пройдено», а проверка не выполнена. Пропуск оправдан только когда условие теста к проекту неприменимо.
Не сходится?
Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.
Знаете материал лучше?
Предложите ссылку: после проверки она появится в этом разделе.
Войти, чтобы предложить