getwarp / easy-coding-standard-bridge
Warp config for Easy Coding Standard
Fund package maintenance!
getwarp
hustlahusky
Requires
- php: ^7.4|^8.0
Requires (Dev)
- roave/security-advisories: dev-latest
- slevomat/coding-standard: ^7.0
- symfony/var-exporter: ^5.2|^6.0
- symplify/easy-coding-standard: ^10.0
Suggests
- slevomat/coding-standard: ^7.0
- symfony/var-exporter: Required for ecs-baseliner
- symplify/easy-coding-standard: ^10.0
README
getwarp/easy-coding-standard-bridge
Warp config for Easy Coding Standard
GitHub • Packagist • Installation • Usage
Installation
Установите зависимости для разработки:
composer require --dev getwarp/easy-coding-standard-bridge symplify/easy-coding-standard symfony/var-exporter
Usage
Чтобы скопировать базовые конфиги для Easy Coding Standard и EditorConfig, выполните команду из директории репозитория.
vendor/bin/ecs-init.php
После этого у вас появятся файлы .editorconfig
и ecs.php
. Доработайте конфиг ecs.php
под нужды проекта, укажите
директории с кодом для анализа.
Внедрение на действующий проект
После инициализации конфига на действующем проекте ecs
найдет массу ошибок в кодовой базе, не все из которых он может
решить автоматически при использовании ключа --fix
. В этом случае можно просто принять все эти ошибки как "baseline"
и игнорировать их при анализе. Это позволяет упростить процесс внедрения инструмента и начать писать новый код применяя
стандарты.
Для создания "baseline" конфига необходимо сначала собрать ошибки в формате JSON:
vendor/bin/ecs check --output-format=json > ecs-baseline-errors.json
После этого запустить команду для генерации "baseline" конфига на основе полученного JSON файла:
vendor/bin/ecs-baseliner.php ecs-baseline-errors.json
Эта команда создаст файл ecs-baseline.php
в рабочей директории. Его необходимо подключить в файле ecs.php
(по-умолчанию он уже подключен в шаблоне). После чего можно проверить что ошибки игнорируются.
Если после этого ecs
снова найдет ошибки, повторите сбор ошибок в новый файл (например, ecs-baseline-errors.2.json
)
и повторите генерацию "baseline" конфига с указанием всех файлов ошибок. Повторите эти шаги, пока ecs
не перестанет
выводить ошибки.
vendor/bin/ecs-baseliner.php ecs-baseline-errors.json ecs-baseline-errors.2.json
После внедрения "baseline" конфига не забывайте при редактировании legacy кода убирать файлы из "baseline" конфига и исправлять ошибки, тем самым постепенно приводя кодовую базу проекта в соответствие стандартам.
Запуск в CI/CD
Пример задания для запуска проверки кода в GitLab CI/CD:
stages: - test .in-docker-job: tags: - docker image: alpine .php-job: extends: .in-docker-job image: getwarp/nginx-php-fpm:latest-7.4 .composer-job: extends: .php-job before_script: - composer install cache: key: composer paths: - vendor - $COMPOSER_CACHE_DIR variables: COMPOSER_CACHE_DIR: "$CI_PROJECT_DIR/._composer-cache" codestyle: extends: .composer-job stage: test script: - composer codestyle -- --no-progress-bar --no-interaction
При указании docker образа, в котором будет выполняться задание, вместо getwarp/nginx-php-fpm:latest-7.4
можно
указать тег с версией php для проекта (доступны 7.2
, 7.3
, 7.4
) либо другой образ с php
и composer
.
Change log
Please see CHANGELOG for more information on what has changed recently.
Contributing
Report issues and send pull requests in the main Warp repository. Please see contributing guide and code of conduct for details.
Credits
License
The MIT License (MIT). Please see license file for more information.