Ответ
В последних коммерческих проектах я работал с Symfony 6.3 и Symfony 6.4. Для долгосрочных проектов предпочитаю выбирать LTS (Long Term Support) версии, такие как Symfony 6.2 LTS, которая поддерживается до ноября 2027 года. Это дает стабильность и безопасность.
Пример из composer.json проекта на Symfony 6.2 LTS:
{
"require": {
"php": ">=8.1",
"symfony/framework-bundle": "^6.2",
"symfony/console": "^6.2",
"symfony/runtime": "^6.2"
}
}
Проверка версии в проекте:
# Через консоль Symfony
php bin/console --version
# Symfony 6.2.12 (env: dev, debug: true)
# Через Composer
composer show symfony/framework-bundle | grep versions
Опыт обновления: При переходе с Symfony 5.4 на 6.x основная работа заключалась в обновлении типизации (добавление возвращаемых типов : void, : Response в контроллерах), адаптации под новый аутентификатор Security и проверке совместимости сторонних бандлов. Использование symfony/flex и recipes значительно упростило этот процесс.
Ответ 18+ 🔞
Ну ты смотри, какие темы поднимаешь! Прямо в точку, ядрёна вошь. Сейчас на коммерции сплошной Symfony 6.3 да 6.4. Но если проект серьёзный, надолго, то тут без вариантов — только LTS, то есть Symfony 6.2. Поддержка аж до ноября 2027-го, можно спать спокойно, а не бздеть, что завтра всё накроется медным тазом из-за какой-нибудь дыры в безопасности. Стабильность — это святое.
Вот, глянь, как в composer.json это обычно выглядит, чистая правда:
{
"require": {
"php": ">=8.1",
"symfony/framework-bundle": "^6.2",
"symfony/console": "^6.2",
"symfony/runtime": "^6.2"
}
}
А чтобы не быть голословным и не верить мне на слово, вот тебе пара команд, которые всё прояснят. Запустишь и сам всё увидишь:
# Через консоль Symfony
php bin/console --version
# Symfony 6.2.12 (env: dev, debug: true)
# Через Composer
composer show symfony/framework-bundle | grep versions
Ну а теперь про самое весёлое — про апдейт. Я недавно с 5.4 на 6.x переползал. Э, бошка думай! Основная движуха — это, конечно, типизация. Надо было везде, где контроллеры, прописывать : void или : Response. Поначалу волнение ебать, кажется, что всё сломаешь. Потом новый этот аутентификатор Security подъехал — пришлось вникать. И, само собой, все сторонние бандлы на совместимость проверять, а то один такой пидарас шерстяной может весь проект положить. Но, честно, не так страшно, как кажется. Спасибо symfony/flex с их recipes — они реально много рутины на себя забрали, жизнь упростили. Без них было бы, конечно, ещё то веселье.