Symfony - Arquitetura

Symfony é basicamente uma coleção de componentes e pacotes de alta qualidade. Os componentes são conjuntos de classes que fornecem uma única funcionalidade central. Por exemplo,Cache componentfornece funcionalidade de cache, que pode ser adicionada a qualquer aplicativo. Os componentes são blocos de construção de um aplicativo Symfony. Symfony tem mais de 30 componentes de alta qualidade, que são usados ​​em muitos frameworks PHP, como Laravel, Silex, etc.

Os pacotes são semelhantes ao plug-in, mas fáceis de criar e usar. Na verdade, um aplicativo Symfony é em si um pacote composto de outros pacotes. Um único pacote pode usar qualquer número de componentes Symfony e também componentes de terceiros para fornecer recursos como Webframework, acesso a banco de dados, etc. Symfony core web-framework é um pacote chamado FrameworkBundle e há um pacote chamado FrameworkExtraBundle, que oferece mais sofisticação opções para escrever um aplicativo da web.

O relacionamento entre os componentes, pacotes e aplicativo Symfony é especificado no diagrama a seguir.

Web Framework

Symfony é projetado principalmente para escrever aplicativos da web de alta qualidade com relativa facilidade. Ele fornece várias opções para escrever diferentes tipos de aplicativos da web, desde um simples site até serviços avançados baseados em REST. Symfony fornece estrutura web como pacotes separados. Os pacotes comuns usados ​​no framework da web Symfony são os seguintes -

  • FrameworkBundle
  • FrameworkExtraBundle
  • DoctrineBundle

O framework web Symfony é baseado na arquitetura Model-View-Controller (MVC). Model representa a estrutura de nossas entidades empresariais. View mostra os modelos ao usuário da melhor maneira possível dependendo da situação. Controller lida com todas as solicitações do usuário, faz o trabalho real interagindo com o Modelo e, finalmente, fornece à Visualização os dados necessários para mostrá-la ao usuário.

A estrutura da web Symfony fornece todos os recursos de alto nível necessários para um aplicativo empresarial. A seguir está um fluxo de trabalho simples do aplicativo da web Symfony.

O fluxo de trabalho consiste nas etapas a seguir.

Step 1 - O usuário envia uma solicitação ao aplicativo por meio do navegador, por exemplo http://www.symfonyexample.com/index.

Step 2 - O navegador enviará uma solicitação ao servidor da web, por exemplo, servidor da web Apache.

Step 3 - O servidor web irá encaminhar a solicitação para o PHP subjacente, que por sua vez a envia para o framework web Symfony.

Step 4- HttpKernel é o componente principal do framework web Symfony. O HttpKernel resolve o controlador da solicitação fornecida usando o componente de roteamento e encaminha a solicitação ao controlador de destino.

Step 5 - Toda a lógica de negócios ocorre no controlador de destino.

Step 6 - O controlador irá interagir com o Model, que por sua vez interage com o Datasource através do Doctrine ORM.

Step 7 - Depois que o controlador conclui o processo, ele gera a própria resposta ou por meio do View Engine e a envia de volta ao servidor web.

Step 8 - Finalmente, a resposta será enviada ao navegador solicitado pelo servidor web.