Каждый раз, когда мы думаем начать новый проект Symfony, нам нужно подумать о том, какие библиотеки необходимы для хорошего качества кода. Это происходит со мной и, наверняка, с каждым другим разработчиком Symfony.
По этой причине я решил создать скрипт, который создает скелетный проект Symfony со всеми необходимыми зависимостями для улучшения его качества.
С помощью этого скрипта вы сможете создать свой следующий скелетный проект symfony, используя четыре библиотеки, которые, по моему мнению, должны использоваться в каждом проекте symfony.
Сохраните приведенный ниже код и запустите его следующим образом:
./symfony-setup-project.sh {project-name}
#!/usr/bin/env bash
set -e
PROJECT=$1
composer create-project symfony/skeleton ${PROJECT}
mkdir ${PROJECT}/tools
mkdir ${PROJECT}/tools/php-cs-fixer
cd ${PROJECT}
composer require --working-dir=tools/php-cs-fixer friendsofphp/php-cs-fixer
composer require --dev phpstan/phpstan
composer require --dev phpunit/phpunit ^9.5
composer require --dev symfony/phpunit-bridge
composer require --dev qossmic/deptrac-shim
tools/php-cs-fixer/vendor/bin/php-cs-fixer fix src
php vendor/bin/phpstan analyse src
php bin/phpunit
php vendor/bin/deptrac analyse
Что это сделает:
1. Создайте новое приложение Symfony
composer create-project symfony/skeleton ${PROJECT}
Он создаст новый каталог ${PROJECT}
, загрузит в него некоторые зависимости и даже сгенерирует основные каталоги и файлы, необходимые для начала работы.
2. Установите PHP Coding Standards Fixer
mkdir ${PROJECT}/tools
mkdir ${PROJECT}/tools/php-cs-fixer
cd ${PROJECT}
composer require --working-dir=tools/php-cs-fixer friendsofphp/php-cs-fixer
Следуя рекомендациям со страницы PHP CS Fixer, приведенные выше строки установят инструмент PHP CS Fixer, который исправит ваш код в соответствии со стандартами; независимо от того, хотите ли вы следовать стандартам кодирования PHP, определенным в PSR-1, PSR-2 и т.д., или другим стандартам, разработанным сообществом, таким как Symfony.
3. Установите инструмент статического анализа PHP
composer require --dev phpstan/phpstan
PHPStan – это важная библиотека, которая поможет вам найти ошибки в вашем коде, не выполняя его, отлавливая целые классы ошибок еще до того, как вы напишете тесты для кода. Она приближает PHP к компилируемым языкам в том смысле, что корректность каждой строки кода может быть проверена до того, как вы запустите ее на выполнение.
4. Установите PHP Testing Framework
composer require --dev phpunit/phpunit ^9.5
composer require --dev symfony/phpunit-bridge
PHPUnit – это ориентированная на программистов система тестирования для PHP. Он представляет собой экземпляр архитектуры xUnit для фреймворков модульного тестирования.
5. Установите Deptrac
composer require --dev qossmic/deptrac-shim
Deptrac – это инструмент статического анализа кода для PHP, который помогает вам общаться, визуализировать и внедрять архитектурные решения в ваши проекты.
Заключение
Если вы используете эти четыре библиотеки в своих проектах Symfony, вы сможете обеспечить соблюдение единых стандартов кодирования в каждом классе вашего проекта, отлавливать ошибки еще до запуска проекта или написания тестов, создавать тесты для вашего проекта и проверять их каждый раз, когда вы поставляете новую версию кода, а также поддерживать чистоту архитектуры, определяя архитектурные слои над классами и правила, которые должны применяться к ним.
Я собираюсь написать больше об этих библиотеках, но вы можете легко перейти по ссылкам на каждую из них, чтобы узнать о них больше.
Если я пропустил какую-то важную библиотеку, пожалуйста, оставьте комментарий, чтобы помочь мне улучшить эти знания.