Без воды о том, как за 10 минут сделать:
1.Проверяем ваш composer.json на серьезные и несерьезные ошибки, вроде неоптимального autoload
2.Проверяем ваш composer.lock на security уязвимости в пакетах
3.Проверяем вашу базу данных, что ничего не забыли
4.Проверяем ваши YAML файлы
5.Проверяем Coding Style по Symfony

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

1)Проверяем ваш composer.json на серьезные и несерьезные ошибки, вроде неоптимального autoload:
./composer.phar validate --no-check-all --strict

2)Проверяем ваш composer.lock на уязвимости в пакетах:
php vendor/bin/security-checker security:check
В случае, если в базе данных будут обнаружены какие-то уязвимости с тем или иным пакетом, нам покажется вот такая картинка:
image
И в CI вернется статус, что программа была некорректно завершена, что поломает билд и привлечет внимание разработчика.
Подробнее о проекте — security.sensiolabs.org
База данных — security.sensiolabs.org/database

3)Проверяем вашу базу данных
php bin/console doctrine:schema:validate -e=prod
Ситуация:
Разработчик внес изменения в сущности. Но забыл создать миграцию, а мы ведь нормальные и используем миграции для того, чтобы менять что-то в базе на проде? А тут еще и тимлид пропустил, что нет миграции на новые изменения. Выполняйте эту команду после того, как накатили все миграции на базу данных. Команда проверит, что изменений в бд в соответствии с маппингом сущностей больше никаких не требуется, что дает 100% гарантии, что никто не забыт, ничего не забыто.

4)Проверяем ваши YAML файлы
Устанавливаем matthiasnoback/symfony-config-test для тестирования наших YAML файлов в проекте:
php bin/console lint:yaml app/config/
php bin/console lint:yaml src/AppBundle/Resources/config/

5.Проверяем Coding Style по Symfony
Устанавливаем escapestudios/symfony2-coding-standard и squizlabs/php_codesniffer, далее делаем следующее:
php vendor/bin/phpcs ./src -p --encoding=utf-8 --extensions=php --ignore=Tests --standard=./vendor/escapestudios/symfony2-coding-standard/Symfony2
В случае, если есть нарушения, мы получим примерно такую картину с полным описанием:
image

Комментарии (5)


  1. iborzenkov
    20.01.2018 13:34

    С кодстайлом лучше все-таки php-cs-fixer или даже оба (хотя после фиксера phpcs только длину строк ловит)


    1. artem90
      21.01.2018 10:45

      Фиксер, на мой взгляд, надо запускать руками разработчику, а не исправлять код в процессе проверок.
      Мало ли что исправиться не так как положено.


      1. Fesor
        22.01.2018 12:25

        никто не говорит о фиксе в ходе проверок. На CI надо с --dry-run запускать, а разработчик может себе git hook какой сделать что бы не забывать.


  1. justhack
    20.01.2018 20:54

    посмотрите phpro/grumphp, решает уже все из коробки


  1. merk
    22.01.2018 01:35

    До кучи можно добавить проверку чексумм вендоров — github.com/sensiolabs/checksums