Phpstan жалуется на миграции доктрины в Symfony 3.4 с проектом Flex

У меня есть проект, построенный на Symfony 3.4 с Flex, и я добавил к нему phpstan для статического анализа.

Он жалуется на то, что не нашел мои классы миграции:

Class DoctrineMigrations\Version20180831185050 was not found while trying to analyse it - autoloading is probably not configured properly.

Действительно, файлы, созданные с помощью Doctrine Migrations, не подходят для шаблона автозагрузки, но в остальном работают нормально.

Что я могу сделать, чтобы перестать жаловаться на это?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
8
0
1 711
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Можно исключить файлы из анализа

Создайте файл конфигурации phpstan.neon в каталоге проекта и вставьте:

parameters:
    excludes_analyse:
        - %currentWorkingDirectory%/src/DoctrineMigrations/*

Каждый файл в каталоге src/DoctrineMigrations будет исключен из анализа.

Это сработало, но с Flex каталог - src / Migrations, без Doctrine в имени.

Radu C 10.09.2018 13:33

Лучше включать с autoload_directories, чем исключать, как в ответе @ ondřej-mirtes

Manuel 21.03.2019 12:33

Вы можете добавить каталог с миграциями в автозагрузчик Composer, или предпочтительно добавить его в autoload_directories в phpstan.neon:

parameters:
    autoload_directories:
        - src/Migrations

Дополнительные сведения см. В разделе Автозагрузка в документации PHPStan.

Хм, не уверен в этом. Если вы посмотрите на config/packages/doctrine_migrations.yaml, разработчики Symfony оставили комментарий "# namespace is arbitrary but should be different from App\Migrations as migrations classes should NOT be autoloaded".

agoldev 20.08.2019 14:01

@agoldev Хотя в контексте приложения да, они не должны загружаться автоматически, чтобы предотвратить их случайное выполнение, в случае PhpStan вы хотите запустить для них проверки, чтобы убедиться, что они синтаксически правильны. Поэтому вы добавляете их в PhpStan Только

SteveB 28.11.2019 09:20

Другие вопросы по теме