Правила PHPSTAN для обнаружения запрещенных вызовов и многого другого, не запуская код.
Есть некоторые функции, методы и константы, которые не следует использовать в производственном коде. Одним из хороших примеров является var_dump() , он часто используется для быстрого отладки проблем, но должен быть удален перед совершением кода. И иногда это не так.
Другим примером будет общий регистратор. Допустим, вы используете одну из общих библиотек ведения журнала, но у вас есть свой собственный регистратор, который добавит некоторую дополнительную информацию или дезинфицирует данные, прежде чем вызовать универсальный регистратор. Ваш код не должен вызовать универсальный регистратор напрямую, но вместо этого должен использовать ваш пользовательский журнал.
Это расширение PHPSTAN будет обнаружить такое использование, если он настроен. Следует отметить, что это расширение не является способом защиты от или обнаружения враждебных разработчиков, поскольку они могут запутать призывы, например. Это расширение предназначено для того, чтобы быть еще одной парой глаз, обнаруживая ваши собственные ошибки, он не направлен на обнаружение всех.
Тесты приведут примеры, что в настоящее время обнаруживается. Если это не покрывается тестами, это может быть, но, скорее всего, не будет обнаружено. *Test.php - это тесты, начните с тех, что анализируемый тестовый код находится в SRC, необходимых классах тестирования в LIBS.
Не стесняйтесь подавать проблемы или создавать запросы на притяжение, если вам нужно обнаружить больше вызовов.
Установите расширение, используя композитор:
composer require --dev spaze/phpstan-disallowed-calls
PHPSTAN, инструмент статического анализа PHP, является требованием.
Если вы используете Phpstan/Extension-Installer, вы все настроены и можете пропустить на конфигурацию.
Для ручной установки добавьте это в свой phpstan.neon :
includes :
- vendor/spaze/phpstan-disallowed-calls/extension.neon Вы можете начать с комплексных файлов конфигурации.
Расширение также поддерживает универсальные пользовательские правила.
Допустим, вы запретили foo() с пользовательскими правилами. Но вы хотите повторно пропустить его при использовании в вашей пользовательской обертке или когда первый параметр равен или нет, указанное значение. Расширение предлагает несколько способов сделать это:
Повторное приспособление атрибутов использует аналогичную конфигурацию.
Используйте предоставленный генератор, чтобы генерировать фрагмент конфигурации из PHP disable_functions & disable_classes Directives.
------ --------------------------------------------------------
Line libraries/Report/Processor/CertificateTransparency.php
------ --------------------------------------------------------
116 Calling var_dump() is forbidden, use logger instead
------ --------------------------------------------------------
Имена функций, имена методов, имена классов, пространства имен совпадают независимо от их случая (Disallowing print_r также найдет вызовы print_R ), в то время как все, что еще подобное константам, именам файлов, пути нет.
Вы также можете использовать это расширение без каких -либо других правил PHPSTAN. Это может быть полезно, если вы хотите, например, проверить сторонний код для некоторых вызовов или использования чего-либо.
Если вы хотите внести свой вклад (потрясающе, спасибо!), Вы должны добавить/запустить тесты для ваших вкладов. Сначала установите зависимости Dev, запустив composer install , затем запустите тесты PHPUNIT с помощью composer test , см. scripts in composer.json . Тесты также проводятся на GitHub с действиями на каждом толчке.
Вы можете автоматически исправить проблемы в стиле кодирования, используя composer cs-fix .
Существует аналогичный проект с немного другой конфигурацией, созданный почти одновременно (всего лишь несколько дней): Phpstan запретил код.