1. Utilizar a arquitetura MVC em aplicativos web/PHP
O PDF do documento está disponível |AQUI|.
Os códigos do documento estão disponíveis |AQUI|.
O modelo MVC (Modelo-Visão-Controlador) visa separar claramente as camadas de apresentação, processamento e acesso aos dados. Uma aplicação web que siga esse modelo será arquitetada da seguinte forma:
![]() |
Essa arquitetura é frequentemente chamada de arquitetura de três camadas ou de três níveis:
- a interface do usuário é a vista (V)
- a lógica de aplicação é o controlador (C)
- as fontes de dados são o modelo (M)
A interface do usuário costuma ser um navegador da web, mas também pode ser um aplicativo independente que, por meio da rede, enviaria solicitações HTTP ao serviço web e formataria os resultados que este lhe enviasse. A lógica de aplicação é constituída por scripts que processam as solicitações do usuário. A fonte de dados costuma ser um banco de dados, mas também pode ser simples arquivos de texto, um diretório LDAP, um serviço web remoto, etc. É recomendável que o desenvolvedor mantenha uma grande independência entre essas três entidades, de modo que, se uma delas mudar, as outras duas não precisem mudar, ou apenas minimamente.
A arquitetura MVC é bem adequada para aplicativos web escritos em linguagens orientadas a objetos. A linguagem PHP (4.x) não é orientada a objetos. No entanto, é possível fazer um esforço para estruturar o código e a arquitetura da aplicação, a fim de se aproximar do modelo MVC:
- Colocaremos a lógica de negócios da aplicação em módulos separados dos módulos responsáveis por controlar o diálogo de solicitação-resposta. A arquitetura MVC passa a ser a seguinte:
![]() |
No bloco [Logique Applicative], é possível distinguir:
- o programa principal ou controlador, que é a porta de entrada da aplicação.
- o bloco [Actions], conjunto de scripts responsáveis por executar as ações solicitadas pelo usuário.
- o bloco [Classes métier], que reúne os módulos PHP necessários para a lógica da aplicação. Eles são independentes do cliente. Por exemplo, a função que permite calcular um imposto a partir de determinadas informações fornecidas como parâmetros não precisa se preocupar com a forma como essas informações foram obtidas.
- o bloco [Classes d'accès aux données], que reúne os módulos PHP que obtêm os dados necessários para o controlador, geralmente dados persistentes (BD, arquivos, etc.)
- os geradores das visualizações enviadas como resposta ao cliente.
Nos casos mais simples, a lógica de aplicação costuma se resumir a dois módulos:
- o módulo [contrôle], responsável pelo diálogo cliente-servidor: processamento da solicitação, geração das diversas respostas
- o módulo [métier], que recebe do módulo [contrôle] os dados a serem processados e, em troca, fornece a ele os resultados. Esse módulo [métier] gerencia, então, por conta própria, o acesso aos dados persistentes.

