Link Search Menu Expand Document
21 Мая 2023 г.

Что такое php-cs-fixer и как его использовать

Содержание

php-cs-fixer это инструмент проверки стиля кодирования в php проектах.

Его удобно запускать в CI/CD pipeline для автоматической проверки кода на заданные правила.

Установка

Стандартно ставим через composer, и конечно же в секцию dev

composer require --dev friendsofphp/php-cs-fixer

Конфигурация

Теперь добавляем файл конфигурации с именем .php-cs-fixer.php в корень проекта.

В стандартном виде он выглядит следующим образом:

    <?php

declare(strict_types=1);

return
    (new PhpCsFixer\Config())
        ->setCacheFile(__DIR__ . '/var/cache/.php_cs')
        ->setFinder(
            PhpCsFixer\Finder::create()
                ->in([
                    __DIR__ . '/src',
                ])
                ->append([
                    __FILE__,
                ])
        )
        ->setRules([

        ]);

Самое важное здесь - это правила по которым будем проверять код. Правила будем добавлять в массив setRules

Возможности

Удобнее всего команды для запуска добавить в секцию scripts файла composer.json.

Исходя из настроек конфига что может нам понадобиться:

composer php-cs-fixer fix -- --dry-run # Просмотреть в каких файлах есть ошибки, но не исправлять их
composer php-cs-fixer fix --allow-risky=yes # Выполнять ли рискованные правила
composer php-cs-fixer fix --diff # Выводить diff файлов
composer php-cs-fixer fix --stop-on-violation # Остановить выполнение проверки при первой ошибке

Я все запускаю в docker, у меня команда проверки выглядит так docker compose run --rm php-cli composer php-cs-fixer fix -- --diff --dry-run --allow-risky=yes

Правила

Правила могут входить в набор или использоваться по отдельности. В документации есть их полный список:

Для каждого отдельно взятого проекта набор правил будет свой.

Разберем базовые наборы данных:

Плюс этих правил они могут наследовать другие пакеты правил, например

Вот примеры конфигурационных файлов:

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


Возник вопрос или предложение пиши на почту alexsey_89@bk.ru или в Телеграмм канал

Дата публикации: 21 Мая 2023 г.

Содержание


Наверх

Последнее изменение страницы: 23 Мая 2023 г.