Ми}{@лbI4

Блог хеллоуворлдщика

Как Symfony положила болт на пользователей

28.08.2018 php, upgrade, symfony, zend, имхо

Короткая заметка о том, как заработать геморрой и панические атаки по ночам.

В компании, в которой я сейчас работаю, на основном проекте была версия PHP 7.1. Уже подходит время к релизу стабильной версии 7.3, что, лично для меня, сигнал обновить проект до 7.2.

В проекте около 67 сторонних PHP-пакетов, где 4 из них от Symfony. Я очень люблю и уважаю Symfony за такие замечательные пакеты, как filesystem, finder и особенно console, а также за их огромный вклад в Open-Source и PHP комьюнити, но я не понимаю, как можно так относиться к пользователям?

Когда я обновлял пакеты от Zend, то каждый релиз сопровождался исчерпывающей информацией о всех изменениях в пакетах, исходя из которых можно было приблизительно понять, что точно отвалится еще до запуска тестов на проекте:

А также, в корне пакета имелся .travis.yml, где был список версий PHP на которых проводилось тестирование функционала, что включало в голове, "ага, значит, маловероятно, что на 7.2 это упадет...":

Дополнительно, можно еще и travis-ci ковырнуть, чтобы точно убедиться в ответственности комьюнити, если "на слова" не вериться:

И так в каждом пакете от Zend, что я использовал: полная и исчерпывающая информация. Огромное уважение к Zend за это.

К сожалению, у Symfony, у большинства пакетов, такого нет, из-за чего обновление версии PHP превращается в паранойю, панические атаки и запой... Конечно, я утрирую, просто, это все выливается в лишние затраты времени, в которые входят: установка свежей версии пакета (которая, может быть, даже и не полетит; а если таких пакетов было с десяток, то, добро пожаловать в увлекательный аттракцион с перебором версий), установка зависимостей внутри этого пакета, подготовка тестового окружения, запуск тестов... И так по кругу, если вдруг, пакет "не взлетел".

В проекте, как я уже выше писал, у нас 4 пакета от Symfony:

Где, в корне каждого пакета отсутствует .travis.yml, а в релизах - конь не валялся:

Так было около года назад, когда я апгрейдился с 7.0 на 7.1, так это и по сей день. Вот и все. Выводы делайте сами.

Данный пост я написал специально для некоторых людей, которые по априори считают себя арийской нацией, раз пишут на Symfony Framework или используют пакеты Symfony, и когда теперь меня спросят, чем NoName Framework (или NoName комьюнити) лучше нашего, то можно смело делиться данной статьей и добавлять, что, по крайней мере, разрабу не придется закидываться Феназепамом.