cnicas de Orientação a Objetos juntamente com o conceito MVC para criar aplicações em PHP

 

O que é MVC?

Muita gente já ouviu falar alguma vez sobre esta metodologia de desenvolvimento. Mas afinal, o que vem a ser uma aplicação desenvolvida em MVC? Neste artigo, irei explicar de uma forma sucinta sobre este tipo de arquitetura de desenvolvimento e como este método pode ser aplicado utilizando a linguagem PHP.

MVC vem da sigla (Model-View-Controller) e é um padrão de arquitetura de software. Em aplicações complexas, que enviam uma série de dados para o usuário, o desenvolvedor frequentemente 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 model-view-controller 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.

A Figura 1 representa um diagrama simples exemplificando a relação entre Model, View e Controller onde linhas sólidas indicam associação direta e as tracejadas indicam associação indireta. É comum dividir a aplicação em camadas separadas: apresentação (“interface”), domínio e acesso a dados. Em MVC a camada de apresentação também é separada da view e da controller.

 

Figura 1. Representação gráfica do conceito MVC

 

MVC é muito visto também em aplicações para Web, onde a View é geralmente a página HTML, e o código que gera os dados dinâmicos para dentro do HTML é o Controller. E, por fim, o Model é representado pelo conteúdo de fato, geralmente armazenado em bancos de dados ou arquivos XML.

 

Usando Objetos para entender o conceito aplicado de MVC

Muita gente me pergunta sobre a maneira que eu programo usando MVC com PHP. É claro que já existem vários frameworks que utilizam essa técnica no desenvolvimento PHP. Porém resolvi apresentar aqui o conceito do que uso que pode servir de material de auxílio para outros programadores também.

Para se ter uma idéia, vamos partir para o modelo de programação orientada a objetos. A maneira mais prática de se programar usando MVC nada mais é do que programar usando orientação a objetos. Vamos pensar então no conceito de objeto. Um exemplo, um veículo, onde teremos a classe de veículo e seus métodos (Listagem 1).

 

Listagem 1. Exemplo de classe em PHP

 

class Veiculo{

  /* Qualquer veículo tem os seus métodos padrões: */

  public function andar(){

  /* Programação da função */

  }

  public function parar(){

  /* Programação da função */

  }

}

?>

 

Agora digamos que temos vários veículos, tais como: carros, motos, bicicletas e cada um terá eventos diferentes um do outro. Para isso criamos novas classes estendendo a classe Veiculo no qual as novas classes irão herdar os métodos e propriedades da classe Veiculo, como podemos ver a seguir na Listagem 2.

Desta forma quando instanciarmos o objeto Bicicleta, podemos utilizar os métodos de Veiculo, pois Bicicleta é uma extensão de Veiculo, como no código seguinte:

 

  $meuVeiculo = new Bicicleta();

  $meuVeiculo->trocarMarcha();

  $meuVeiculo->andar();

  $meuVeiculo->parar();

?>

 

Agora vamos construir outra classe Automovel que instancia Veiculo (Listagem 3). Desta forma quando instanciarmos o objeto Automovel, podemos utilizar os métodos de Veiculo, pois Automovel é uma extensão de Veiculo, como podemos na Listagem 4.

 

Listagem 2. Classe veículo estendida

 

class Bicicleta extends Veiculo{

  /* A bicicleta por sua vez contem propriedades */

  public $rodas;

  /* E tbm tem um metodo construtor */

  public function __construct(){

...

Quer ler esse conteúdo completo? Tenha acesso completo