1. Utilizar a arquitetura MVC em aplicações web/PHP
O PDF do documento está disponível |AQUI|.
Os códigos do documento estão disponíveis |AQUI|.
O modelo MVC (Modelo-Vista-Controlador) visa separar claramente as camadas de apresentação, processamento e acesso aos dados. Uma aplicação web que siga este modelo será arquitetada da seguinte forma:
![]() |
Esta arquitetura é frequentemente designada por arquitetura de 3 camadas ou de 3 níveis:
- a interface do utilizador é a vista (V)
- a lógica da aplicação é o controlador (C)
- as fontes de dados são o modelo (M)
A interface do utilizador é frequentemente um navegador da Web, mas também pode ser uma aplicação autónoma que, através da rede, enviaria pedidos HTTP ao serviço Web e formataria os resultados que este lhe enviasse. A lógica da aplicação é constituída pelos scripts que processam os pedidos do utilizador. A fonte de dados é frequentemente uma base de dados, mas também pode consistir em simples ficheiros de texto, um diretório LDAP, um serviço web remoto, etc. É do interesse do programador manter uma grande independência entre estas três entidades, para que, caso uma delas mude, as outras duas não tenham de mudar, ou apenas ligeiramente.
A arquitetura MVC está bem adaptada a aplicações web escritas em linguagens orientadas para objetos. A linguagem PHP (4.x) não é orientada para objetos. No entanto, é possível envidar esforços para estruturar o código e a arquitetura da aplicação, de modo a aproximá-la do modelo MVC:
- Colocaremos a lógica de negócio da aplicação em módulos separados dos módulos responsáveis por controlar o diálogo pedido-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], um conjunto de scripts responsáveis por executar as ações solicitadas pelo utilizador.
- o bloco [Classes métier], que agrupa os módulos PHP necessários à lógica da aplicação. Estes são independentes do cliente. Por exemplo, a função que permite calcular um imposto a partir de determinadas informações que lhe são fornecidas como parâmetros não precisa de se preocupar com a forma como essas informações foram obtidas.
- o bloco [Classes d'accès aux données], que agrupa os módulos PHP que obtêm os dados necessários ao controlador, frequentemente dados persistentes (BD, ficheiros, ...)
- os geradores das vistas enviadas como resposta ao cliente.
Nos casos mais simples, a lógica da aplicação é frequentemente reduzida 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 processar e lhe fornece, em troca, os resultados. Este módulo [métier] gere, então, ele próprio o acesso aos dados persistentes.

