К содержанию

Wiki · Технологии разработки

Symfony

Symfony – это PHP-фреймворк и набор независимых компонентов с открытым кодом для разработки веб-приложений. Проект появился в 2005 году, его создал Фабьен Потансье, а поддерживает французская компания SensioLabs.

С кодом Symfony вы могли сталкиваться, даже не заказывая проект на нём: пакеты Symfony используют Laravel, Drupal и PrestaShop. А если подрядчик предлагает сделать на Symfony портал или кабинет для партнёров, полезно понимать, что это значит для поддержки, обновлений и поиска разработчиков.

Фреймворк, компоненты и бандлы

У Symfony две роли. Первая: полноценный фреймворк, на котором с нуля пишут приложение. Вторая: библиотека отдельных пакетов, которые подключают в любой PHP-проект. Нужна отправка писем, обработка HTTP-запросов или консольные команды? Берут один компонент, а не весь фреймворк:

composer require symfony/mailer

Эта строка добавляет в проект компонент отправки писем. Composer, менеджер пакетов для PHP, сам скачает код и всё, от чего он зависит.

Схема ролей Symfony: фреймворк для порталов и API, отдельные пакеты и проекты Laravel, Drupal и PrestaShop на этих пакетах
Две роли Symfony

Лицензия MIT разрешает бесплатно использовать фреймворк и компоненты в коммерческих проектах. По данным официального сайта, у проекта больше 3 000 контрибьюторов, а разработчиков на Symfony больше 600 000 в 120 с лишним странах.

Приложение собирают из бандлов, то есть подключаемых модулей, и отдельных пакетов. Шаблоны страниц обычно пишут на Twig, с базой данных работают через Doctrine: документация Symfony предлагает именно эти открытые проекты. Настройки лежат в файлах конфигурации и переменных окружения, поэтому один и тот же код разворачивают на тестовом и рабочем сервере с разными параметрами.

Для каких проектов выбирают Symfony

  • Системы, которые будут развивать много лет: порталы, кабинеты для B2B-клиентов, внутренние сервисы компании.
  • Проекты с большим числом интеграций: 1С, CRM, склад, платёжные системы, внешние API.
  • Команды, которым важны строгая архитектура и предсказуемый график обновлений.
  • Сайт компании, блог, типовой каталог. Такие задачи обычно закрывает без заказной разработки готовая CMS.

График версий и LTS Symfony

У Symfony жёсткий график. Минорные версии выходят каждые полгода, в мае и ноябре. Основные версии раз в два года, в ноябре нечётного года. Последняя минорная версия каждой ветки получает статус LTS (долгосрочная поддержка): ошибки в ней исправляют три года, уязвимости закрывают четыре года. Обычную версию поддерживают восемь месяцев.

ВерсияЧто этоПоддержка
7.4LTS, вышла в ноябре 2025 года, нужен PHP 8.2 и новееошибки до ноября 2028, безопасность до ноября 2029
8.1последняя стабильная, вышла в мае 2026 года, нужен PHP 8.4 и новеедо января 2027

Данные в таблице на октябрь 2026 года. Для бизнеса это удобно: переход на следующую LTS можно заранее положить в план и бюджет поддержки. После выхода следующей LTS предыдущая ещё год получает исправления ошибок, и этого времени хватает, чтобы спокойно обновиться.

График поддержки Symfony 7.4 LTS: выход в ноябре 2025, исправления ошибок до ноября 2028, безопасность до ноября 2029
Сколько живёт Symfony 7.4 LTS

Symfony и Laravel: что под какую задачу

Оба фреймворка бесплатные, работают на PHP и подходят для заказной разработки. Различаются они подходом.

СитуацияSymfonyLaravel
Нужен один компонент в готовый PHP-проектПодключают отдельный пакетОбычно используют как фреймворк целиком
Долгий проект с редкими крупными обновлениямиLTS: 3 года исправлений, 4 года безопасностиВерсия раз в год, безопасность 2 года
Быстрый старт сервиса небольшой командойБольше настройки и архитектуры на стартеМного готовых решений из коробки

На практике выбор часто решает команда: проект удобнее вести на стеке, где у подрядчика есть опыт и люди. Подробнее о втором фреймворке в статье Laravel.

Версии, обновления и компоненты Symfony в работе

Для чего в проектах на Symfony используют Messenger?

Messenger отправляет тяжёлые задачи в очередь: письма, выгрузки и обмен с 1С выполняются в фоне, и посетитель не ждёт. Сообщения разбирает отдельный процесс-обработчик, а саму очередь хранят, например, в базе данных или в Redis.

Зачем Symfony-проекту Doctrine?

Doctrine – отдельный открытый проект для работы с базой данных, его документация Symfony предлагает по умолчанию. Таблицы в нём описывают классами-сущностями вроде «Заказ» или «Клиент», а изменения структуры базы хранят в миграциях и повторяют на любом сервере.

За что в экосистеме Symfony приходится платить?

Сам фреймворк и компоненты бесплатны по лицензии MIT, в том числе в коммерческих проектах. Платные бывают услуги вокруг него: обучение, сертификация разработчиков, коммерческая поддержка от компаний вроде SensioLabs. Основные расходы проекта всё равно уходят на работу команды.

Почему в папке vendor/symfony лежит код, если сайт на Laravel?

Laravel, Drupal и PrestaShop построены на компонентах Symfony, и Composer складывает их в папку vendor вместе с остальными зависимостями. Значит, сайт использует отдельные пакеты, а не весь фреймворк. Править файлы в vendor бессмысленно: при следующем обновлении зависимостей изменения сотрутся.

Symfony или Laravel: на чём делать кабинет для B2B-клиентов?

Если кабинет будут развивать много лет и он завязан на 1С, склад и CRM, удобнее Symfony: строгая архитектура и LTS-версии с поддержкой до четырёх лет. Если сервис нужно быстро запустить небольшой командой, проще Laravel. На деле решает ещё и то, на каком стеке у подрядчика есть люди.

Как проверить опыт подрядчика с Symfony?

Попросите показать проекты на Symfony и спросите, на какой версии они работают и когда запланирован переход на следующую LTS. Уверенный ответ про график поддержки скажет больше, чем список технологий в презентации. У SensioLabs есть официальная сертификация разработчиков, но опыт с похожими задачами важнее.

Как обновить проект с Symfony 5 до 7.4?

По одной основной версии за раз: 5.4, затем 6.4, затем 7.4. На каждом шаге сначала убирают все предупреждения об устаревших вызовах, которые Symfony пишет в журнал, и только потом переходят на следующую ветку. Заодно поднимают PHP: для 7.4 нужен 8.2 или новее, и это стоит проверить на хостинге заранее.

На какой ветке Symfony начинать новый проект?

Для системы, которую будут развивать годами, обычно берут 7.4 LTS: ошибки в ней исправляют до ноября 2028 года, уязвимости до ноября 2029-го, нужен PHP 8.2 и новее. Symfony 8.1 свежее, но её поддержка закончится в январе 2027 года. Она подходит, если команда готова переходить на новую минорную версию каждые полгода и сервер уже работает на PHP 8.4.

Найм, сервер и админка: что заложить в бюджет

  • Найм. Нужен PHP-разработчик с опытом именно на Symfony. Специалист только по CMS будет долго входить в проект.
  • Поддержка. Патчи ставят регулярно, а переход на следующую LTS закладывают раз в два года.
  • Сервер. На хостинге нужны актуальная версия PHP и доступ по SSH для установки пакетов и запуска команд.
  • Админка. Панель для контент-менеджера сама не появится, её проектируют и оценивают отдельно.

Как понять, что проект сделан на Symfony

По внешнему виду сайта этого обычно не видно. Признаки есть в репозитории: пакеты symfony/* в файле composer.json, консольная команда bin/console, папки config и src.

Если внизу страниц рабочего сайта видна отладочная панель Symfony со временем загрузки и запросами к базе, сайт запущен в режиме разработки. Панель показывает посторонним внутренние данные приложения. Её нужно отключить сразу, а заодно проверить настройки сервера в ходе технического аудита.

Где проекты на Symfony теряют поддержку и безопасность

  • Запустить проект на обычной версии и забыть, что через восемь месяцев её перестанут поддерживать.
  • Оставить на рабочем сервере режим разработки.
  • Не закрепить в договоре передачу кода, доступов и документации. Заказной проект без них трудно передать другой команде.

Веб-приложения, кабинеты и интеграции мы проектируем и делаем в услуге Разработка сайтов. Если проект уже работает на Symfony, берём его на доработку и поддержку: доработка существующего сайта и техническая поддержка.

Документация и сайт Symfony

  • Symfony: официальный сайт, раздел о проекте и страницы версий 7.4 и 8.1
  • Symfony: документация, порядок выпуска и поддержки версий
  • Symfony: репозиторий фреймворка и лицензия MIT
  • SensioLabs: материалы к 20-летию Symfony

Остались вопросы по теме «Symfony»?

Напишите нам в Telegram или MAX. Ответит специалист, который отвечает за эту тему, или руководитель проектов в рабочее время.

Сергей ЧерняковОтвечает по темеСергей ЧерняковWeb-разработчик

Посчитайте стоимость проекта за 2 минуты

Калькулятор соберёт смету по нашим тарифам: сайт, дизайн, интеграции и поддержка.