Calendário
|
|
Janeiro '09 | |||||
| Se | Te | Qu | Qu | Se | SÃ | Do |
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 | |
Categories
Administração do weblog
Terça, 27 de Novembro de 2007
O que é o MVC e como nos pode ajudar
Olá, como primeiro post gostaria de explicar um conceito que apesar de não ser novo, ainda gera alguma confusão entre programadores. Vou falar de MVC, e como pudemos tirar partido deste modelo ao desenhar aplicações PHP.
Ok, então MVC significa Model View Controller e é um tipo de arquitectura de design de software, parece complicado mas não é, até é bastante simples, este tipo de arquitectura separa a nossa aplicação em três camadas distintas, apresentação (User Interface), Logica da aplicação, e acesso aos dados.
Vamos ver mais detalhadamente quais as funções de cada uma destas partes.
As views, são estruturas destinadas á apresentação do conteudo, á forma como apresentamos esse conteudo aos utilizadores. Nas views, vamos colocar o HTML incluir os ficheiros CSS e JavaScript da aplicação, no fundo tudo o que regula e sustenta a forma como visualizamos a aplicação.
Models ou Modelos, ao contrário das views os modelos são o local ideal para lidar com a logica da aplicação, recolher dados de uma base de dados, ou ficheiro, redimencionar imagens, executar operações, no fundo todo o tipo de operações que a aplicação executa entre o click do utilizador e a apresentação dos dados será levada a cabo pelos modelos.
E Finalmente os controladores (Controllers), o que fazem? simples controlam. Os controladores são responsáveis por receber o pedido do cliente e decidem qual modelo chamar para aquele pedido expecifico, recebem os dados recolhidos e trabalhados pelo modelo e decidem qual a view (ou template) a renderizar fornecendo-lhe todos os dados necessários. Assim os controladores são quem controla todo o fluir da aplicação, decidindo o que carregar e executar para cada pedido.
Ok, até aqui tudo bem, mas quais as vantagens reais de usar esta arquitectura? são varias:
Primeira, e possÃvelmente a mais importante, é a possibilidade de ter multiplas views baseadas no mesmo modelo. Hoje em dia existe uma crescente exigência de novas formas de acesso a uma aplicação. A solução é o uso de MVC. Porquê? porque com MVC, não interessa se o utilizador que uma aplicação com o interface em Flash, Ajax, ouWAP, porque o mesmo modelo pode tratar de tudo, assim a duplicação de código é limitada porque separamos a logica do interface.
Proque o modelo retorna dados sem aplicar qualquer formatação, os mesmo componentes podem ser chamados e usados com qualquer interface. Por exemplo, na maioria dos casos os dados são formatados com HTML, mas também podem ser formatados usando o Adobe Flash ou WAP. O modelo também isola e manuseia estados e persistencia de dados. Por exemplo, um site em Flash ou uma aplicação wireless podem as duas usar o mesmo sistema de sessions e os mesmo processos de e-commerce.
Porque o modelo é auto-contido e completamente separado do controlador e das views, torna-se muito mais facil alterar dados na aplicação ou a forma como esses dados são tratados. Imagine que muda de base de dados, digamos de MySQL para Oracle, apenas necessita de mudar o modelo. Se implementado correctamente, a view não quer saber se a lista de utilizadores veio da base de dados MySQL ou de outro sitio qualquer.
O conceito do controlador também trás beneficios. Para mim, o controlador é usado para trocar informações entre diferentes partes do modelos até á view para completar um pedido. Tendo um conjunto de blocos reutilizavel (modelos e views), o controlador escolhe quais os blocos necessários para lidar com um determinado processo (pedido) e mostrar o que foi requisitado.
Bem por agora ficamos por aqui, espero ter sido util.

