Содержание
Основная разница между Symfony 4 и 5 заключается в том, что Symfony 5 удалила все устаревшие (deprecated) функции из Symfony 4.4 и представила новые компоненты (String и Notifier), при этом сохранив полную функциональную совместимость по новым возможностям. Фактически Symfony 4.4 и 5.0 вышли одновременно и имеют одинаковый набор новых функций, но 5.0 «очищена» от всего, что было помечено как устаревшее в предыдущих версиях . Symfony 4.4 — это последний LTS-релиз ветки 4.x, который остаётся в поддержке дольше, в то время как Symfony 5.0 открывает новую мажорную ветку .
Философия одновременного релиза
Symfony 4.4 и 5.0 были выпущены в один день . Это не случайность, а продуманная стратегия обновления. Ветки 4.x и 5.x разрабатывались параллельно:
- Symfony 4.4 — последняя версия в ветке 4.x, версия с долгосрочной поддержкой (LTS). Она содержит все новые функции, но сохраняет устаревшие методы для обратной совместимости .
- Symfony 5.0 — первая версия новой мажорной ветки. Она имеет те же новые функции, что и 4.4, но удаляет всё, что было объявлено устаревшим в 4.x .
Такая схема позволяет разработчикам сначала обновиться до 4.4, исправить все предупреждения об устаревании (deprecations), а затем практически безболезненно перейти на 5.0 .
Ключевые различия в таблице
| Критерий | Symfony 4.4 (LTS) | Symfony 5.0+ |
|---|---|---|
| Устаревшие функции (Deprecations) | Содержит все deprecations из предыдущих версий 4.x, но они пока работают | Все deprecations полностью удалены из кода. Требует чистого кода без предупреждений |
| Требования к PHP | PHP 7.1.3 или выше | PHP 7.2.5 или выше |
| Новые компоненты | — | String component (работа с UTF-8 строками), Notifier component (уведомления через Slack, Telegram, SMS) |
| Удалённые компоненты | — | Удалены Templating component (полный переход на Twig), старая система безопасности |
| Размер кода | Базовый | На 37 000 строк кода меньше, чем в 4.x |
| Производительность | Хорошая | Работает примерно на 7% быстрее, чем 4.x |
| Длительность поддержки | 3 года на исправления ошибок, 4 года на безопасность (LTS) | 8 месяцев (стандартная поддержка) |
Что нового появилось в Symfony 4.4 и 5.0 одновременно
Поскольку обе версии разрабатывались параллельно, они получили одинаковый набор новых возможностей :
Новый компонент Mailer
Symfony 5 заменил устаревший SwiftMailer на новый Symfony Mailer, который интегрируется с Mime-компонентом для создания и отправки сложных email-сообщений .
Улучшенный HttpClient
HttpClient-компонент получил расширенные возможности для отладки, улучшенную интероперабельность с другими библиотеками и поддержку NTLM-аутентификации .
Новый способ работы с секретами (Secrets Management)
Система для безопасного хранения чувствительных данных (паролей, ключей API) с возможностью их шифрования и хранения в системе контроля версий .
Preloading для PHP 7.4
Symfony 4.4 и 5.0 поддерживают механизм preloading из PHP 7.4, что даёт значительный прирост производительности .
Улучшенная обработка ошибок
Новый ErrorHandler-компонент заменил Debug-компонент, сделав исключения Symfony более современными и понятными .

Что было удалено в Symfony 5.0
Главное отличие Symfony 5 от 4 — это удаление всего, что помечалось как @deprecated в версиях 4.x . Вот основные удаления :
- Templating component — полностью убран в пользу Twig как единственного шаблонизатора
- Старая система безопасности (Security) — заменена на новую компонентную архитектуру
- Устаревшие методы формы — например, FormTypeInterface::getName() больше не используется
- Множество polyfill-библиотек — для старых версий PHP, которые больше не поддерживаются
Кроме того, Symfony 5.0 требует более строгой типизации и следования современным стандартам PHP .
Практические последствия для разработчика
Обновление с 4.4 до 5.0
Процесс обновления выглядит так :
- Убедитесь, что ваш проект работает на Symfony 4.4
- Запустите приложение в окружении
APP_ENV=devи исправьте все deprecation warnings - Измените в
composer.jsonзначениеextra.symfony.requireна "^5.0" - Выполните
composer update
Symfony Flex автоматически ограничит версии всех symfony-компонентов до 5.x .
Совместимость с CMS и конструкторами
Если вы используете готовые CMS, например Joomla, или работаете с конструкторами вроде SitePro.by, разница между Symfony 4 и 5 для вас не критична — эти платформы скрывают детали реализации фреймворка. Но если вы разрабатываете собственные приложения на Symfony, миграция с 4 на 5 потребует внимания к устаревшим функциям.
Какую версию выбрать для нового проекта
- Symfony 4.4 (LTS) — подходит для долгосрочных проектов, которые не планируют часто обновляться. Поддержка этой версии длится дольше (4 года на безопасность), но код должен быть готов к eventualному переходу на 5.x .
- Symfony 5.x — выбор для новых проектов, которые хотят использовать последние возможности PHP и минимальный, чистый код фреймворка. Однако срок поддержки не-LTS версий ограничен 8 месяцами .
На практике большинство разработчиков используют последнюю стабильную версию Symfony 5 (или уже 6/7) для новых проектов, а 4.4 остаётся на сопровождении legacy-систем .
Главный вывод: Symfony 5 — это не революция, а эволюция и «уборка» после стабильной 4-й ветки. Все новые функции вы получите уже в 4.4, но 5.0 требует от вашего кода большей чистоты и современности.