Symfony
Symfony
Symfony — зрелый PHP-фреймворк и набор переиспользуемых компонентов (HTTP, Console, Messenger, Validator и др.). Laravel и API Platform опираются на части Symfony; многие enterprise-проекты выбирают Symfony напрямую за предсказуемость, долгую поддержку LTS и строгую архитектуру.
Пошаговый старт: Первая программа на Symfony. Шпаргалка: Справочник по Symfony. Сравнение с Laravel: Laravel, Экосистема PHP-приложений.
Философия: компоненты и полный фреймворк
| Подход | Описание |
|---|---|
| Только компоненты | Подключить symfony/http-foundation + routing в свой проект |
| Symfony Framework | Соглашения, бандлы, DI, конфигурация YAML/PHP |
| Symfony Flex | Рецепты: после composer require автоматически настраиваются файлы |
Требования: PHP 8.2+, Composer, расширения ctype, iconv, mbstring (см. официальную документацию для вашей версии).
Жизненный цикл HTTP-запроса
Точка входа — public/index.php. Каталог public/ — единственная директория, доступная извне (аналогично Laravel).
Ключевые понятия
Бандлы (Bundles)
Модуль функциональности: регистрирует маршруты, сервисы, шаблоны. FrameworkBundle, TwigBundle, SecurityBundle — стандартный набор.
DI-контейнер
Зависимости объявляются в config/services.yaml и внедряются через конструктор:
public function __construct(
private readonly EntityManagerInterface $em,
) {}
Автоконфигурация помечает классы в src/ как сервисы.
Маршрутизация
Атрибуты PHP 8 (предпочтительно в новых проектах):
#[Route('/hello', name: 'app_hello')]
public function hello(): Response
{
return new Response('Hello');
}
Doctrine ORM
Стандарт де-факто для работы с БД: сущности, репозитории, миграции (php bin/console make:migration).
Messenger
Асинхронные задачи и очереди — аналог Laravel Queue. Транспорты: AMQP, Redis, Doctrine.
Security
Firewall, аутентификация (form login, JWT через пакеты), роли и voters для авторизации.
Symfony vs Laravel
| Symfony | Laravel | |
|---|---|---|
| Стиль | Явная конфигурация, enterprise | Выразительные соглашения, скорость старта |
| ORM | Doctrine (Data Mapper) | Eloquent (Active Record) |
| Шаблоны | Twig | Blade |
| CLI | bin/console | artisan |
| Типичный заказчик | Банки, госсектор, крупный B2B | Стартапы, агентства, широкий рынок |
Оба фреймворка «взрослые»; выбор часто определяется командой и политикой компании, а не «слабостью» технологии.
Инструменты
symfony new myapp --webapp # скелет с Twig, Doctrine, Security
composer require symfony/orm-pack
php bin/console cache:clear
php bin/console debug:router
symfony server:start # локальный сервер (Symfony CLI)
Связанные материалы
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). PHP как язык веб-разработки - роль серверного исполнения, базовый синтаксис и место в современном стеке. Экосистема PHP-приложений - фреймворки, инструменты, пакеты и типовые архитектурные подходы веб-разработки. Фундамент для начинающего программиста - что повторить, как работать, чего ожидать. Модель исполнения PHP - жизненный цикл запроса, серверный контекст и экосистема популярных CMS. История PHP - эволюция языка от простых скриптов до зрелой платформы серверной веб-разработки. Composer в PHP - управление зависимостями, автозагрузка классов и воспроизводимая сборка проектов. Параметр opcache.fast_shutdown ускоряет завершение работы скрипта за счёт пропуска стандартной процедуры освобождения памяти. Вместо этого используется механизм сборщика мусора операционной системы. Локальная среда разработки на PHP - настройка стека, запуск приложения и отладка без продакшен-сервера. Набор советов, правил, принципов и обычаев в разработке на этом языке. Фреймворки и библиотеки PHP - организация сервисов, вспомогательные компоненты и ускорение разработки веб-приложений. Гайд по установке и настройке с написанием первой программы и её запуском. Примеры простых и полезных консольных приложений с демонстрацией концепций языка.PHP - язык веб-разработки
Экосистема PHP-приложений
Что требуется знать перед началом изучения языка программирования PHP
Модель исполнения PHP
История языка PHP
Composer - управление зависимостями в PHP
Настройка веб-сервера для работы с PHP
Локальная среда разработки на PHP
Рекомендации по разработке на PHP
Фреймворки и библиотеки PHP
Первая программа на PHP
Простые приложения на PHP