Автоматическая декларация strict_type для генерируемых классов MakerBundle

Хочу рассказать историю о том что нужно всегда продолжать учиться. Сегодня хотел предложить MR в MakerBundle для Symfony суть была проста научить его добавлять декларацию проверки типов

PHP
declare(strict_types=1);

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

Живет эта прелесть в Symfony\Bundle\MakerBundle\Command\MakerCommand. А дальше было интересснее, я пошел перечитывать документацию, где на самом видном месте понятным языком написано, что мейкер адаптируется под стандарты указанные в php-cs-fixer по берутся настройки поставляемые с пакетом, но их можно переопределить с помощью переменных MAKER_PHP_CS_FIXER_BINARY_PATH и MAKER_PHP_CS_FIXER_CONFIG_PATH. То есть уже все есть все готово и все работает, просто надо уметь пользоваться.

И так простое до безобразия решение:

ENV:
MAKER_PHP_CS_FIXER_CONFIG_PATH: /app/.php-cs-fixer.dist.php
.php-cs-fixer.dist.php
return (new PhpCsFixer\Config())
    ->setRules([
        '@Symfony' => true,
        'declare_strict_types' => true,
    ])
    ->setRiskyAllowed(true)
    ->setFinder(
        (new PhpCsFixer\Finder())
            ->in(__DIR__)
            ->exclude('var')
            ->exclude('vendor')
    );

Строчка номер 6 нужна тк declare_strict_types добавляет декларцию которая меняет поведение кода.

Оставьте комментарий

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