Symfony — это коллекция высококачественных компонентов и комплектов. Компоненты представляют собой набор классов, обеспечивающих единую базовую функциональность. Например, компонент Cache обеспечивает функциональность кеша, которую можно добавить в любое приложение. Компоненты являются строительными блоками приложения Symfony. Symfony имеет более 30 компонентов высокого качества, которые используются во многих PHP-фреймворках, таких как Laravel, Silex и т. Д.
Пакеты похожи на плагин, но просты в создании и использовании. На самом деле, приложение Symfony само по себе является пакетом, состоящим из других пакетов. В одном пакете может использоваться любое количество компонентов Symfony, а также сторонних компонентов для предоставления таких функций, как веб-структура, доступ к базе данных и т. Д. Базовая веб-структура ядра Symfony представляет собой пакет с именем FrameworkBundle, и существует пакет с именем FrameworkExtraBundle, который предоставляет более сложные варианты написания веб-приложения.
Взаимосвязь между компонентами, пакетами и приложением Symfony указана на следующей диаграмме.
Веб-фреймворк
Symfony в основном предназначен для написания качественных веб-приложений с относительной легкостью. Он предоставляет различные варианты написания различных типов веб-приложений от простого веб-сайта до расширенных веб-сервисов на основе REST. Symfony предоставляет веб-фреймворк в виде отдельных пакетов. Общие комплекты, используемые в веб-инфраструктуре Symfony:
- FrameworkBundle
- FrameworkExtraBundle
- DoctrineBundle
Веб-фреймворк Symfony основан на архитектуре Model-View-Controller (MVC). Модель представляет структуру наших хозяйствующих субъектов. Просмотр показывает модели для пользователя в лучшем виде в зависимости от ситуации. Контроллер обрабатывает все запросы от пользователя, выполняет фактическую работу, взаимодействуя с моделью, и, наконец, предоставляет представлению необходимые данные для его отображения пользователю.
Веб-инфраструктура Symfony предоставляет все высокоуровневые функции, необходимые для приложения уровня предприятия. Ниже приведен простой рабочий процесс веб-приложения Symfony.
Рабочий процесс состоит из следующих шагов.
Шаг 1. Пользователь отправляет запрос в приложение через браузер, например, http://www.symfonyexample.com/index.
Шаг 2 — Браузер отправит запрос на веб-сервер, скажем, веб-сервер Apache.
Шаг 3 — Веб-сервер направит запрос в базовый PHP, который, в свою очередь, отправит его веб-платформе Symfony.
Шаг 4 — HttpKernel является основным компонентом веб-фреймворка Symfony. HttpKernel разрешает контроллер данного запроса с использованием компонента маршрутизации и передает запрос целевому контроллеру.
Шаг 5 — Вся бизнес-логика происходит в целевом контроллере.
Шаг 6 — Контроллер будет взаимодействовать с моделью, которая, в свою очередь, взаимодействует с источником данных через Doctrine ORM.
Шаг 7 — Как только контроллер завершает процесс, он генерирует ответ сам или через View Engine и отправляет его обратно на веб-сервер.
Шаг 8. Наконец, ответ будет отправлен веб-сервером в запрошенный браузер.