4 основные библиотеки, необходимые каждому проекту Symfony для улучшения качества кода

Каждый раз, когда мы думаем начать новый проект 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, вы сможете обеспечить соблюдение единых стандартов кодирования в каждом классе вашего проекта, отлавливать ошибки еще до запуска проекта или написания тестов, создавать тесты для вашего проекта и проверять их каждый раз, когда вы поставляете новую версию кода, а также поддерживать чистоту архитектуры, определяя архитектурные слои над классами и правила, которые должны применяться к ним.

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

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

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