Larastan был создан Каном Вуралом и Нуно Мадуро, его обложка разработана @Caneco, поддерживается Каном Вуралом и Виктором Сепе и представляет собой расширение PHPStan для Laravel. Larastan фокусируется на поиске ошибок в вашем коде . Он выявляет целые классы ошибок еще до того, как вы напишете тесты для кода.
Хотя по определению «статический анализ» не загружает код вашего приложения. Larastan загружает контейнер вашего приложения, поэтому он может разрешать типы, которые можно вычислить только во время выполнения. Вот почему мы используем термин «анализ кода» вместо «статический анализ».
Версия Ларавел | Ларастанская версия |
---|---|
< 9 | 1.х |
> 9,0 && <11,15 | 2.х |
11.15+ | 3.0+ |
Требует:
1 : Во-первых, вы можете использовать Composer для установки Larastan в качестве зависимости разработки в ваш проект Laravel:
composer require --dev " larastan/larastan:^3.0 "
Использование Larastan для анализа пакетов Laravel? Возможно, вам придется установить
orchestra/testbench
.
2 : Затем создайте файл phpstan.neon
или phpstan.neon.dist
в корне вашего приложения. Это может выглядеть так:
includes:
- vendor/larastan/larastan/extension.neon
- vendor/nesbot/carbon/extension.neon
parameters:
paths:
- app/
# Level 10 is the highest level
level: 5
# ignoreErrors:
# - '#PHPDoc tag @var#'
#
# excludePaths:
# - ./*/*/FileToBeExcluded.php
Все доступные варианты можно найти в документации PHPStan: https://phpstan.org/config-reference.
3 : Наконец, вы можете начать анализировать свой код с помощью консольной команды phpstan:
./vendor/bin/phpstan analyse
Если вы получаете сообщение об ошибке Allowed memory size exhausted
, вы можете использовать опцию --memory-limit
для решения проблемы:
./vendor/bin/phpstan analyse --memory-limit=2G
Игнорирование конкретной ошибки можно выполнить либо с помощью комментария php, либо в файле конфигурации:
// @phpstan-ignore-next-line
$ test -> badMethod ();
$ test -> badMethod (); // @phpstan-ignore-line
При игнорировании ошибок в файле конфигурации PHPStan они игнорируются путем написания регулярного выражения на основе сообщений об ошибках:
parameters :
ignoreErrors :
- ' #Call to an undefined method .*badMethod()# '
В старых базах кода может быть сложно потратить время на исправление всего кода, чтобы пройти высокий уровень PHPStan.
Чтобы обойти эту проблему, можно создать базовый файл. Базовый файл создаст файл конфигурации со всеми текущими ошибками, поэтому новый код можно будет написать в соответствии с более высокими стандартами, чем старый код. (Документация PHPStan)
./vendor/bin/phpstan analyse --generate-baseline
Список настраиваемых правил, специфичных для Laravel, можно найти здесь.
Список возможностей Larastan можно найти здесь.
Список типов PHPDoc, специфичных для Larastan, можно найти здесь.
Список пользовательских параметров конфигурации, которые вы можете использовать в файле конфигурации PHPStan, можно найти здесь.
Некоторые части Laravel в настоящее время слишком волшебны, чтобы Larastan/PHPStan мог их понять. Мы перечислили распространенные ошибки, которые следует игнорировать. Добавляйте их по мере необходимости.
Спасибо, что решили внести свой вклад в Ларастан. Все правила внесения взносов упомянуты здесь.
Larastan — это программное обеспечение с открытым исходным кодом, лицензированное по лицензии MIT.