Symfony
Symfony — свободный и открытый веб-фреймворк на языке PHP, представляющий собой как фреймворк для веб-приложений, так и набор многократно используемых PHP-компонентов. Фреймворк был опубликован как свободное программное обеспечение 18 октября 2005 года и распространяется под лицензией MIT.
Что важно знать
| Symfony | |||
|---|---|---|---|
| Тип | Веб-фреймворк | ||
| Автор | Фабиан Потансье | ||
| Разработчик | сообщество Symfony | ||
| Написана на | PHP | ||
| Интерфейс | Веб-интерфейс, командная строка | ||
| Движок | Symfony | ||
| Операционная система | многоплатформенное ПО | ||
| Языки интерфейса | Многоязычный | ||
| Первый выпуск | 22 октября 2005 | ||
| Аппаратная платформа | x64 | ||
| Последняя версия | 7.3 (май 2025) | ||
| Бета-версия |
7.4.0-BETA2 8.0.0-BETA2 (2 ноября 2025) |
||
| Репозиторий | github.com/symfony/symfo… | ||
| |||
| Состояние | активное | ||
| Лицензия | MIT | ||
| Сайт | symfony.com | ||
Цели
Symfony ориентирован на ускорение создания и сопровождения веб-приложений, а также на замену рутинной работы по написанию повторяющегося кода. Разработка фреймворка изначально была рассчитана на корпоративные приложения и предоставляла разработчикам полный контроль над конфигурацией — от структуры каталогов до сторонних библиотек, практически все аспекты можно кастомизировать[1]. Для соответствия требованиям корпоративной разработки в поставку входят вспомогательные инструменты для тестирования, отладки и документирования проектов[2].
Symfony практически не создаёт избыточной нагрузки на производительность при использовании кэширования байткода.
Требования
Основные требования фреймворка касаются программного обеспечения, в то время как аппаратные потребности зависят от сложности и посещаемости создаваемого приложения.
Программные требования
Ключевым элементом для работы Symfony является корректно настроенное PHP-окружение. Для актуальных версий фреймворка (например, 7.x) требуются[3]:
- PHP версии 8.2 или выше[3].
- Набор стандартных PHP-расширений, включая Ctype, iconv, JSON, PCRE, Session, SimpleXML и Tokenizer[4].
- Менеджер пакетов Composer для установки фреймворка и управления зависимостями[4].
Для проверки соответствия окружения всем требованиям можно использовать утилиту Symfony CLI, выполнив команду symfony check:requirements[4].
Аппаратные рекомендации
Официальных строгих аппаратных требований не существует, поскольку они напрямую зависят от нагрузки на приложение. Рекомендации для различных сред являются ориентировочными.
- Среда разработки:
- Производственная среда (сервер):
Symfony является кроссплатформенным решением и может работать на Linux, Windows и macOS[8]. Для производственных серверов чаще всего используется Linux[9] и требуется веб-сервер, такой как Apache или Nginx[8].
Технические особенности
Symfony во многом вдохновлён фреймворком Spring Framework[10][11].
В архитектуре Symfony широко используются как собственные компоненты, так и сторонние открытые PHP-проекты[12]. Ключевыми собственными компонентами, формирующими ядро фреймворка, являются Dependency Injector (контейнер внедрения зависимостей) и Event Dispatcher (диспетчер событий). Среди интегрированных сторонних библиотек:
- Doctrine — объектно-реляционный картограф для работы с базами данных, используемый по умолчанию[13]. Также поддерживается PDO.
- PHPUnit — фреймворк для модульного тестирования.
- Swift Mailer — библиотека для работы с электронной почтой (в более поздних версиях заменена компонентом Symfony Mailer).
Фреймворк позволяет разработчикам выбирать между несколькими форматами для файлов конфигурации: YAML, XML и PHP[14]. Все форматы компилируются в оптимизированный PHP-код и кэшируются, поэтому выбор не влияет на производительность[14].
- YAML (
.yaml) — формат по умолчанию, ценится за краткость и читаемость[15]. Собственный парсер Symfony YAML является одним из широко используемых компонентов фреймворка. - XML (
.xml) — его преимуществом является возможность валидации и автодополнения в IDE[15]. - PHP (
.php) — позволяет использовать всю мощь языка для динамического определения конфигурации[14].
Как бэкенд-фреймворк, Symfony предоставляет инструменты для создания различных типов интерфейсов[12]:
- Веб-интерфейс (Web UI) — создаётся разработчиками для конечных пользователей с помощью HTML, CSS и JavaScript. Symfony может служить бэкендом для одностраничных приложений (SPA), разработанных на React, Vue или Angular[16].
- Интерфейс командной строки (CLI) — реализован через компонент Console и используется для широкого круга задач: генерации кода, управления кэшем, выполнения миграций базы данных и запуска встроенного веб-сервера[17].
- Административные интерфейсы — для управления данными в приложении могут быть быстро созданы с помощью сторонних пакетов, таких как EasyAdmin или SonataAdmin[18].
Для генерации HTML-страниц по умолчанию используется шаблонизатор Twig[19]. Он отделяет логику представления от бизнес-логики приложения, что повышает безопасность за счёт автоматического экранирования вывода[20]. Файлы шаблонов (.html.twig) используют синтаксис с двойными фигурными скобками ( для вывода переменных и {%...%} для управляющих конструкций)[21]. Наряду с Twig, фреймворк также поддерживает использование нативных PHP-шаблонов благодаря компоненту Templating[21].
В Symfony существует концепция «экспериментальных возможностей» (Experimental Features), которая позволяет внедрять новые функции, чей API ещё не считается стабильным[22]. Такие функции помечаются тегом @experimental и не имеют гарантий обратной совместимости, что позволяет разработчикам собрать отзывы от сообщества перед окончательной стабилизацией API[23]. Экспериментальная функция может существовать в таком статусе, как правило, не более одного минорного релиза и никогда не добавляется в LTS-версии[22].
Локализация
Фреймворк Symfony предоставляет гибкие возможности для локализации, которые делятся на две категории: перевод пользовательского интерфейса создаваемого приложения и языковая поддержка встроенных инструментов для разработки.
Для локализации приложения используется компонент Translator, который поддерживает стандарт ICU для идентификации локалей. Это позволяет разработчику перевести приложение практически на любой язык, включая его региональные варианты (например, ru для русского или de_DE для немецкого в Германии). Процесс локализации включает создание файлов переводов в форматах XLIFF (.xlf), YAML (.yaml) или PHP (.php), которые размещаются в директории translations/[24]. Вывод переведённых сообщений осуществляется через сервис-переводчик в коде или с помощью специальных фильтров в шаблонах Twig[24].
Встроенные инструменты Symfony имеют разный уровень языковой поддержки. Интерфейс командной строки (bin/console) по умолчанию использует английский язык без возможности локализации. В то же время веб-инструменты, такие как панель отладки (Web Debug Toolbar) и профилировщик (Profiler), являются переводимыми, и язык их интерфейса автоматически адаптируется под текущую локаль приложения[25]. Сообщения для этих инструментов, а также для компонентов валидации и безопасности, переведены сообществом на множество языков, включая:
Спонсоры
Фреймворк Symfony поддерживает компания SensioLabs, французский разработчик программного обеспечения и поставщик профессиональных сервисов[26]. Изначально проект назывался Sensio Framework[27], и все классы были с префиксом sf. Позднее, при открытии исходного кода, название было изменено на symfony (с версии 2 и выше — Symfony) для согласования с префиксами классов и общей концепцией[28].
Использование на практике
- Symfony используется в открытой системе вопросов и ответов Askeet и ряде других приложений, включая сайт Delicious[29].
- В определённый момент фреймворк использовался для поддержки Yahoo! Bookmarks с 20 миллионами пользователей[30].
- С февраля 2009 часть кода Dailymotion.com переведена на Symfony, процесс продолжается[31].
- Symfony применяется в OpenSky (платформа для социального шопинга), eRepublik (массовая браузерная стратегическая онлайн-игра), а также во фреймворке eZ Publish 5-й версии[32].
- Компоненты Symfony используются в Drupal (начиная с версии 8), Magento (начиная с версии 2), phpBB и других крупных платформах[33][34][35].
- Фреймворк используется в Meetic — одной из крупнейших онлайн-платформ для знакомств[36].
- Компоненты Symfony встроены в другие фреймворки, включая Laravel, а также микрофреймворк Silex[34].
- Сайт Vogue Paris также построен на Symfony[37].
- BlaBlaCar, крупнейший в мире сервис для карпулинга, использует и масштабирует свою платформу на Symfony[38][39].
- Поисковая система для отелей Trivago использовала фреймворк для создания новых приложений в рамках модернизации архитектуры[35].
- Рекламная платформа Spotify Ad Studio использует API Platform, которая построена на базе Symfony[40].
- Среди более поздних государственных и корпоративных проектов — официальный сайт Президента Франции (Elysée.fr), система управления лидами Audi France, платформа для электронных подписей Yousign, Информационная система маркировки пищевых продуктов Европейской комиссии, а также онлайн-магазин мебели Vente-unique.com[41].
На официальном сайте Symfony представлен полный перечень проектов и витрина сайтов, использующих данный фреймворк[42].
Выпуски
Symfony использует модель календарных (time-based) релизов: новая версия публикуется каждые шесть месяцев — в мае и ноябре. Этот процесс формирования релизов введён начиная с версии 2.2, а с версии 2.4 его правила стали обязательны.
Обычные версии поддерживаются восемь месяцев, а версии с длительной поддержкой (LTS) — три года для исправлений ошибок и четыре года для обновлений безопасности[43]. LTS-релизы публикуются раз в два года.
Последний стабильный релиз — версия 7.3, а текущая LTS-версия — 6.4[44]. В ноябре 2025 года запланирован выпуск следующей LTS-версии 7.4 и новой мажорной версии 8.0[45]. По состоянию на 2 ноября 2025 года они находились в статусе BETA2[46].
| Цвет | Значение |
|---|---|
| Красный | Релиз более не поддерживается |
| Жёлтый | Поддерживаются только исправления безопасности |
| Зелёный | Релиз поддерживается |
| Синий | Будущий релиз |
| Версия | Дата релиза | Поддержка | Требуемая версия PHP | Конец поддержки | Примечания | Примечания |
|---|---|---|---|---|---|---|
| 1.0 | январь 2007 | три года (красный) | ≥ 5.0 | январь 2010 | [47] | |
| 1.1 | июнь 2008 | один год (красный) | ≥ 5.1 | июнь 2009 | Исправления безопасности до июня 2010 | |
| 1.2 | декабрь 2008 | один год (красный) | ≥ 5.2 | ноябрь 2009 | ||
| 1.3 | ноябрь 2009 | один год (красный) | ≥ 5.2.4 | ноябрь 2010 | ||
| 1.4 | ноябрь 2009 | три года (красный) | ≥ 5.2.4 | ноябрь 2012 | LTS-версия. 1.4 идентична 1.3, но не поддерживает устаревшие функции 1.3[48]. | |
| 2.0 | июль 2011 | (красный) | ≥ 5.3.2 | март 2013 | Последний выпуск 2.0.x — Symfony 2.0.25[49]. | |
| 2.1 | сентябрь 2012 | восемь месяцев (красный) | ≥ 5.3.3 | июнь 2013 | Больше компонентов в стабильном API | |
| 2.2 | март 2013 | восемь месяцев (красный) | ≥ 5.3.3 | ноябрь 2013 | Новые функции | |
| 2.3 | июнь 2013 | три года (красный) | ≥ 5.3.3 | май 2016 | Первый LTS-релиз[50]. | |
| 2.4 | ноябрь 2013 | восемь месяцев (красный) | ≥ 5.3.3 | июль 2014 | Первый 2.x-релиз с полной обратной совместимостью | |
| 2.5 | май 2014 | восемь месяцев (красный) | ≥ 5.3.3 | январь 2015 | ||
| 2.6 | ноябрь 2014 | восемь месяцев (красный) | ≥ 5.3.3 | июль 2015 | ||
| 2.7 | май 2015 | три года (красный) | ≥ 5.3.9 | май 2018 | LTS | |
| 2.8 | ноябрь 2015 | три года (красный) | ≥ 5.3.9 | ноябрь 2018 | LTS | |
| 3.0 | ноябрь 2015 | восемь месяцев (красный) | ≥ 5.5.9 | июль 2016 | ||
| 3.1 | май 2016 | восемь месяцев (красный) | ≥ 5.5.9 | январь 2017 | ||
| 3.2 | ноябрь 2016 | восемь месяцев (красный) | ≥ 5.5.9 | июль 2017 | ||
| 3.3 | июнь 2017 | восемь месяцев (красный) | ≥ 5.5.9 | январь 2018 | ||
| 3.4 | ноябрь 2017 | три года (красный) | ≥ 5.5.9 | ноябрь 2020 | LTS | |
| 4.0 | ноябрь 2017 | восемь месяцев (красный) | ≥ 7.1.3 | июль 2018 | Отказ от поддержки HHVM | |
| 4.1 | май 2018 | восемь месяцев (красный) | ≥ 7.1.3 | январь 2019 | ||
| 4.2 | ноябрь 2018 | восемь месяцев (красный) | ≥ 7.1.3 | июль 2019 | ||
| 4.3 | май 2019 | восемь месяцев (красный) | ≥ 7.1.3 | январь 2020 | ||
| 4.4 | ноябрь 2019 | три года (красный) | ≥ 7.1.3 | ноябрь 2022 | LTS[51] | |
| 5.0 | ноябрь 2019 | восемь месяцев (красный) | ≥ 7.2.5 | июль 2020 | Опубликован Фабианом Потансье на SymfonyCon Amsterdam (21 ноября 2019)[52] | |
| 5.1 | май 2020 | восемь месяцев (красный) | ≥ 7.2.5 | январь 2021 | ||
| 5.2 | ноябрь 2020 | восемь месяцев (красный) | ≥ 7.2.5 | июль 2021 | [53] | |
| 5.3 | май 2021 | восемь месяцев (красный) | ≥ 7.2.5 | январь 2022 | Стабильный релиз[54] | |
| 5.4 | ноябрь 2021 | три года (жёлтый) | ≥ 7.2.5 | ноябрь 2025 | LTS | [55] |
| 6.0 | ноябрь 2021 | восемь месяцев (красный) | ≥ 8.0.2 | январь 2023 | Период поддержки продлён на полгода[56][57] | |
| 6.1 | май 2022 | восемь месяцев (красный) | ≥ 8.1 | январь 2023 | [58] | |
| 6.2 | ноябрь 2022 | восемь месяцев (красный) | ≥ 8.1 | июль 2023 | [59] | |
| 6.3 | май 2023 | восемь месяцев (красный) | ≥ 8.1 | январь 2024 | [60] | |
| 6.4 | ноябрь 2023 | три года (зелёный) | ≥ 8.1 | ноябрь 2027 | LTS | [61] |
| 7.0 | ноябрь 2023 | восемь месяцев (красный) | ≥ 8.2 | июль 2024 | [62] | |
| 7.1 | май 2024 | восемь месяцев (красный) | ≥ 8.2 | январь 2025 | [63] | |
| 7.2 | ноябрь 2024 | восемь месяцев (красный) | ≥ 8.2 | июль 2025 | [64] | |
| 7.3 | май 2025 | восемь месяцев (зелёный) | ≥ 8.2 | январь 2026 | [65] | |
| 7.4 | ноябрь 2025 | три года (зелёный) | ≥ 8.2 | ноябрь 2029 | LTS[66] | |
| 8.0 | ноябрь 2025 | восемь месяцев (зелёный) | июль 2026 | Новая мажорная версия[45] |
Примечания
Литература
- Kerrial Beckett Newham. Symfony 6. Leanpub, 2023.
- Fabien Potencier. Symfony 6: The Fast Track. Leanpub, 2022. Книга регулярно обновляется (последнее обновление — май 2024 года) и имеет официальный перевод на русский язык: Symfony 6. Быстрый старт[1][2].
- Fabien Potencier, François Zaninotto. The Definitive Guide to symfony. Apress, 2007. ISBN 1-59059-786-9.
- Fabien Potencier. Practical symfony. Sensio Labs Books, 2009. Doctrine edition: ISBN 978-2-918390-06-0; Propel edition: 978-2918390077; также испанское издание доступно на lulu.com.
- Fabien Potencier, Hugo Hamon: Symfony, Mieux développer en PHP avec symfony 1.2 et Doctrine. Eyrolles, 2009. ISBN 978-2-212-12494-1 (французское издание).
- Tim Bowler, Wojciech Bancer. Symfony 1.3 Web Application Development. Packt, 2009. ISBN 978-1-84719-456-5.
Ссылки
- ↑ Symfony 6: The Fast Track. Leanpub. Дата обращения: 3 ноября 2025.
- ↑ Symfony 6. Быстрый старт. Leanpub. Дата обращения: 3 ноября 2025.


