FuelPHP - Visão geral da arquitetura
FuelPHP é baseado em testes de batalha Model-View-Controller arquitetura junto com HMVC (Hierarchical MVC)Apoio, suporte. Enquanto o MVC fornece desenvolvimento de aplicativos flexível e em camadas, o HMVC vai um passo além para permitir o widgetization do aplicativo da web.
O ponto forte do FuelPHP é que ele não impõe maneiras específicas de desenvolver um aplicativo. Ele apenas fornece uma estrutura padrão simples e fácil de usar. Os desenvolvedores são livres para usar o conjunto predefinido de funcionalidade fornecido pelo FuelPHP ou modificá-lo sempre que necessário. Todos os recursos fornecidos pelo FuelPHP, incluindo o recurso principal, podem ser alterados de acordo com os requisitos do aplicativo.
Modelo
O modelo é a entidade comercial do aplicativo. Controller e View trocam dados na forma de Model. O modelo permite a representação uniforme de nossos dados de negócios. Ele permite que a camada de banco de dados interaja com a camada de aplicativo da web da maneira padrão e fornece uma opção para selecionar, salvar, editar e excluir nossas entidades de banco de dados.
Controlador
Um aplicativo MVC típico começa a partir de um controlador. Depois que um usuário envia uma solicitação ao aplicativo da web FuelPHP, o aplicativo reúne todas as informações sobre a solicitação e as envia ao Controlador. O controlador faz a lógica de negócios necessária da página solicitada e, em seguida, chama a Visualização relevante junto com os dados processados na forma de Modelos.
Visão
Visualização é a camada de apresentação do aplicativo MVC. View decide como mostrar o modelo ao usuário. Ele oferece suporte à renderização de dados simples para o layout avançado, o que permite ao site normalizar o design em todas as páginas. O View também fornece suporte a temas, o que permite mudanças rápidas de design em todo o aplicativo.
Apresentador
Apresentador é um recurso especial fornecido pelo FuelPHP. É a cola entre o controlador e a visualização. O controlador pode compartilhar algumas de suas responsabilidades de baixo nível, como recuperar o modelo do banco de dados, gerar dados para a visualização, etc. O controlador chama o Presenter em vez de View, que por sua vez chama a View. O Presenter permite a separação pura da lógica de negócios e da camada de apresentação.
MVC hierárquico
O FuelPHP oferece uma opção para chamar um controlador de outro controlador, semelhante à solicitação do cliente (navegador). Se qualquer controlador chamar outro controlador, o controlador chamado retornará a resposta ao controlador de chamada em vez de renderizá-la ao cliente (navegador). Isso permitewidgetizationdo aplicativo da web. Por exemplo, a seção de comentários pode ser exibida como uma página independente e também como uma subseção da página principal (blog).
Módulo
Um dos recursos salientes do FuelPHP é que uma seção do aplicativo da web pode ser convertida em módulos, que podem ser compartilhados entre os diferentes aplicativos. Por exemplo, um módulo de blog criado para um aplicativo pode ser reutilizado em outro aplicativo apenas copiando o código do módulo do aplicativo de origem para o aplicativo de destino.
Observe que criar um novo módulo é tão simples quanto desenvolver o aplicativo principal. A estrutura é semelhante à do aplicativo principal, com a única exceção de que o módulo deve codificar uma pasta separada.
Pacote
FuelPHP fornece uma opção para organizar o código em uma única unidade chamada Pacote. Um pacote pode conter uma ou mais funcionalidades necessárias para o aplicativo da web. Por exemplo, um componente de banco de dados, como ORM, e-mail, etc., pode ser organizado em um pacote e usado sempre que necessário.
Um Pacote é diferente de um Módulo no sentido de que o Pacote não contém nenhuma página da web ou páginas da web parciais. O pacote pode ser usado no FuelPHP assim como em qualquer outro framework PHP.
Fluxo de Trabalho
O fluxo de trabalho do FuelPHP é simples e fácil de entender. Isso é descrito no diagrama a seguir.
O usuário envia uma solicitação ao aplicativo.
O controlador recebe a solicitação e reúne informações ao interagir com o modelo, que por sua vez interage com o banco de dados.
O controlador coleta informações ao interagir com outro controlador, enviando uma sub-solicitação para os outros controladores.
O controlador envia o modelo recuperado para a visualização, que por sua vez gera a apresentação e a envia ao cliente como uma resposta.
Em alguns casos, o controlador pode passar o controle para o apresentador. Nesse caso, o apresentador coleta informações do modelo e as envia ao cliente. Aqui, o apresentador não executa nenhuma lógica de negócios, exceto recuperar o modelo do banco de dados.