Рефакторинг с помощью PHPStan (Из офиса)

Меня зовут Нико, 

Я старший инженер билетного брокера в Лондоне.

Из офиса!» — это ежедневный (почти) постинг, который я веду, чтобы писать о технических вещах, которыми я занимаюсь в повседневной офисной жизни.

Пакеты & Composer

Давайте начнем с самого начала.

Если вы PHP-разработчик, вы должны знать, что такое Composer.

Composer — это менеджер пакетов для языка PHP.

Концепция очень проста. 

Мы, как разработчики, не хотим изобретать колесо каждый раз, когда нам нужна какая-то функция.

По этой причине мы создаем небольшой кусочек кода, который выполняет уникальную задачу.

Затем мы «загружаем» эти кусочки кода в проект, когда они нам нужны.

Большинство проектов PHP в настоящее время состоят из многих десятков, если не сотен таких кусочков кода, они называются пакетами.

PHPStan

Мою ежедневную задачу на новом рабочем месте можно охарактеризовать одним словом: рефакторинг.

Это то, для чего меня привлекли, и это то, чем я занимаюсь ежедневно.

Для этого я использую несколько инструментов, таких как PHPUnit, встроенная функция Symfony и многие, как вы догадались, пакеты.

Один из них, который я использую в последнее время, — PHPStan.

PHPStan — это инструмент статического анализа PHP. 

PHPStan находит ошибки в коде, не запуская его. 

Он отлавливает целые категории ошибок еще до того, как будут написаны тесты для кода.

Инструмент статического анализа

Как вы читали выше, PHPStan — это инструмент статического анализа.

Инструменты статического анализа означают много разных вещей, в данном случае это инструмент, который исследует исходный код и находит проблемы до того, как они возникнут. 

Он очень мощный, потому что делает это без фактического запуска кода и без необходимости добавлять для него модульные или интеграционные тесты.

Он имеет расширение для многих наиболее популярных фреймворков и CMS, таких как Laravel, Symfony и Drupal.

И может быть легко использован внутри вашего CI-конвейера.

Как это работает?

PHPStan проверяет ваш код в зависимости от группы правил, которые он установил.

Эти правила сгруппированы по различным уровням (они идут от уровня 1 как самого низкого до уровня 9 как самого высокого.

Это хорошо, потому что вы можете начать просматривать и исправлять ошибки первого уровня и, сделав это, двигаться на шаг вперед, постепенно достигая более высокого уровня.

Установка

Установить этот пакет в ваш проект очень просто.

Все, что вам нужно сделать, это зайти в корневую папку вашего проекта или туда, где вы храните файл composer, и выполнить следующую команду

composer require --dev phpstan/phpstan

Для запуска программы вам нужно указать, какую папку вы хотите проанализировать.

В моем случае, я храню код в папке src/, а тесты — в tests/.

Analyse

vendor/bin/phpstan analyse src tests

Вот и все!

Есть много опций, которые вы можете захотеть персонализировать.

Давайте рассмотрим основные из них

—level|-l

Указывает уровень правила для запуска.

—configuration|-c

Указывает путь к файлу конфигурации. Относительные пути определяются на основе текущего рабочего каталога.

—memory-limit

Указывает ограничение памяти в том же формате, который принимает php.ini.

—xdebug

PHPStan отключает XDebug, если он включен, для достижения лучшей производительности.

Файл конфигурации

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

Не пугайтесь расширения neon, синтаксис очень похож на YAML.

В этом файле вы можете указать правила, например, какие пути вашего кода вы хотите анализировать, на каком уровне и даже хотите ли вы игнорировать определенные ошибки или нет.

Вот пример:

parameters:
    paths:
        - src
    ignoreErrors:
        - '#Call to an undefined method [a-zA-Z0-9\_]+::doFoo()#'
        - '#Call to an undefined method [a-zA-Z0-9\_]+::doBar()#'
Войти в полноэкранный режим Выйти из полноэкранного режима

Вот официальный сайт и док-ты для этого пакета.

Мой совет — попробуйте его, даже если вам не нужно рефакторить код прямо сейчас.

Заключение

Я работаю веб-разработчиком уже почти десять лет.

Работаю с компаниями мирового класса и отмеченными наградами маркетинговыми агентствами, расположенными в самом центре Лондона.

Кроме того, я пишу статьи и руководства в своем блоге и онлайн-сообществах и помогаю компаниям наращивать свое присутствие в Интернете.

Нажмите здесь, чтобы прочитать более 100+ моих статей в блоге

Оцените статью
devanswers.ru
Добавить комментарий