1. Utilização da arquitetura MVC em aplicações web/PHP
O PDF do documento está disponível |AQUI|.
O código do documento está disponível |AQUI|.
O padrão MVC (Model-View-Controller) visa separar claramente as camadas de apresentação, processamento e acesso aos dados. Uma aplicação web que siga este padrão terá a seguinte estrutura:
![]() |
Essa arquitetura é frequentemente chamada de arquitetura de 3 camadas ou 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 web, mas também pode ser uma aplicação autónoma que envia pedidos HTTP para o serviço web através da rede e formata os resultados que recebe. A lógica da aplicação consiste em scripts que processam os pedidos do utilizador. A fonte de dados é frequentemente uma base de dados, mas também pode ser simples ficheiros planos, um diretório LDAP, um serviço web remoto, etc. É do interesse do programador manter um elevado grau de independência entre estas três entidades, de modo a que, se uma delas mudar, as outras duas não tenham de mudar, ou apenas minimamente.
A arquitetura MVC é adequada para aplicações web escritas em linguagens orientadas a objetos. A linguagem PHP (4.x) não é orientada a objetos. No entanto, é possível envidar esforços para estruturar o código e a arquitetura da aplicação de forma a alinhá-los mais estreitamente com o modelo MVC:
- Colocaremos a lógica de negócio da aplicação em módulos separados daqueles responsáveis por gerir o diálogo pedido-resposta. A arquitetura MVC fica assim:
![]() |
Dentro do bloco [Lógica da Aplicação], podemos distinguir:
- o programa principal ou controlador, que funciona como ponto de entrada da aplicação.
- o bloco [Ações], um conjunto de scripts responsáveis pela execução das ações solicitadas pelo utilizador.
- o bloco [Classes de Negócio], que agrupa os módulos PHP necessários para a lógica da aplicação. Estes são independentes do cliente. Por exemplo, a função que calcula um imposto com base em determinadas informações fornecidas como parâmetros não precisa de se preocupar com a forma como essas informações foram obtidas.
- o bloco [Data Access Classes], que contém os módulos PHP que recuperam os dados necessários ao controlador, frequentemente dados persistentes (bases de dados, ficheiros, etc.)
- os geradores de visualizações que enviam visualizações como resposta ao cliente.
Nos casos mais simples, a lógica da aplicação é frequentemente reduzida a dois módulos:
- o módulo [controle] que lida com a comunicação cliente-servidor: processando a solicitação, gerando várias respostas
- o módulo [lógica de negócio], que recebe os dados a serem processados do módulo [controlador] e fornece-lhe os resultados em troca. Este módulo [lógica de negócio] gere então o acesso aos dados persistentes.

