Middle Качество кода Рекомендуется

Статический анализ и стандарты

Статический анализ кода через PHPStan или Psalm требует предварительной генерации ORM-аннотаций (php bitrix.php orm:annotate), раскрывающей виртуальные методы сущностей. Каталог ядра подключается к анализаторам как внешний источник типов данных, а соблюдение стандарта PSR-12 в проектной директории /local/ контролируется линтерами в пайплайнах CI/CD.

Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.

Что нужно понимать

  • 1
    PHPStan
  • 2
    PHP_CodeSniffer
  • 3
    Psalm

Материалы

Официальная документация

Проверь себя

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: он знает документацию и материалы сайта по этой теме.

Знаете материал лучше?

Предложите ссылку: после проверки она появится в этом разделе.

Войти, чтобы предложить
Поделиться в Telegram
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…
Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти