sábado, 9 de fevereiro de 2008

MVC e PHP

Bom, voltando a idéia principal do blog que é postar assuntos interessantes (pelo menos pra mim) sobre programação, tecnologia e conceitos. Então, estou criando esse post para falar um pouco sobre os conceitos que estou querendo usar para criação de alguns sites.

O assunto hoje será de MVC e PHP.

Não preciso explicar o conceito de PHP para quem é programador. Isso está mais do que manjado, mas apenas vou dizer que é uma linguagem de programação interpretada.

Em relação ao MVC, ele não é um assunto muito novo. Não sei quando surgiu, mas ele é muito falado na internet e para alguns esse assunto se tornou até chato. Vou dar uma rápida resumida:

MVC (Model, View, Controller) é um padrão de arquitetura de software. Em aplicações complexas, que enviam uma série de dados para o usuário, o desenvolvedor freqüentemente necessita separar os dados (Model) da interface (View). Desta forma, alterações feitas na interface não afetarão a manipulação dos dados, e estes poderão ser reorganizados sem alterar a interface do usuário. O MVC resolve este problema através da separação das tarefas de acesso aos dados e lógica do negócio da apresentação e interação com o usuário, introduzindo um componente entre os dois: o Controller. MVC é usado em padrões de projeto de software, mas MVC abrange mais da arquitetura de uma aplicação do que é típico para um padrão de projeto.

Camadas:

Visão: É a camada de visualização da sua aplicação, onde ela apenas apresenta o que foi obtido através do controle. Eu diria que seria que é o que chega ao usuário final, a parte visual, de interface. A visão não deve ter nenhuma lógica de código, apenas a exibição dos dados.

Controle: É onde serão processadas todas as requisições feitas através da interface (Visão). O controle também acessa o Modelo afim de obter determinadas informações. Toda lógica da aplicação (validações, atribuições, etc) é feita no Controle. Eu diria que o controle é o gerenciador da sua aplicação.

Modelo: É o modelo da sua aplicação, onde são definidos propriedades e atributos dos seus personagens. Na maioria dos casos existe ainda uma camada de persistência dos dados.

O meu objetivo é só dar uma mostrada por alto no conceito, por isso separei alguns links bem legais. Segue abaixo o conceito de MVC segundo o Wikipedia:

http://pt.wikipedia.org/wiki/MVC


MVC e PHP

Uma coisa que percebo em muitos programadores PHP é a falta de preocupação quanto a questões de padrões e organização de código, esses quesitos são essencias para uma aplicação sólida e com grande escalabilidade (facilidade de expansão). Acredito que isso se deve ao fato de o PHP ser uma linguagem muito “livre” que permite que os programadores não se preocupem com questões que um programador Java já tem no sangue.

Para desfrutar do conceito de MVC com PHP existem alguns frameworks que bem interessantes que nos facilitam as coisas. Existem vários, mas listarei 2 logo abaixo que foram os que achei interessantes e que possuem grande documentação disponível:

CodeIgniter:

Guia do usuário (português)

Site oficial do CodeIgniter


Smarty:

Interessante artigo do Erico Almeida (Parte I)

Interessante artigo do Erico Almeida (Parte II)

Site oficial do Smarty


Bom, por enquanto era isso. Pretendo assim que possível ir postando sobre a instalação de um desses dois frameworks e aos poucos ir mostrando o que estou fazendo com cada um deles.

Abraços..

Nenhum comentário: