Наконец, спустя столько месяцев ожидания, Laravel представляют свой новый продукт – особый программный компонент, который поможет анализировать программный код и выявлять в нём ошибки. Ожидание было оправданным: было не просто создать нечто, что сможет находить все ошибки ещё до того, как код написан. И всё же Нуно Мадуро с гордостью представляет Larastan v.1.0.0!
Что такое Larastan
По природе своей Larastan является Phpstan-оболочкой для уже знакомого Вам Laravel, который создал и поддерживает Нуно Мадуро. Основная задача этого компонента – профилактический поиск ошибок кода. Фактически благодаря тому, что Larastan фокусируется на поиске, но в то же время его не выполняет, все ошибки будут обнаружены ещё до того, как тексты кода дописаны! К счастью, даже в версии 1.0 Вам уже будет доступна львиная доля функционала горячо любимого Вами Laravel. Larastan также позволяет добавлять статическую типизацию в Laravel для повышения производительности труда разработчиков и качества кода. Вам нужно проанализировать код вашего приложения или пакеты Laravel? Larastan станет лучшим решением.
Требования:
PHP 7.2+
Laravel 6.0+
Установка
composer require nunomaduro/larastan --dev
Затем в корне вашего приложения создайте файл phpstan.neon или phpstan.neon.dist со следующим содержаинем;
includes:
- ./vendor/nunomaduro/larastan/extension.neon
parameters:
paths:
- app
# The level 8 is the highest level
level: 5
ignoreErrors:
- '#Unsafe usage of new static#'
excludePaths:
- ./*/*/FileToBeExcluded.php
checkMissingIterableValueType: false
Теперь вы можете приступить к анализу своего кода, выполнив команду:
./vendor/bin/phpstan analyse
если программа выдает ошибку формата Allowed memory size exhausted (Допустимый объем памяти исчерпан), то используйте опцию:
./vendor/bin/phpstan analyse --memory-limit=2G
Уровни правил
Их градация установлена по возрастанию: нулевой уровень - максимальная свобода, восьмой - безапелляционная строгость. По умолчанию Larastan запрограммирован на пятый уровень. Чтобы настроить программу в строжайшие ограничения, вы можете использовать команду «max».
./vendor/bin/phpstan analyse --level=max
Также вы можете указать директории для анализа с помощью опции --paths. По умолчанию используется папка app.
./vendor/bin/phpstan analyse --paths="modules,app,domain"
Более детальнее с опциями и настройками пакеты вы можете ознакомится по ссылке.