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