Ir para conteúdo
🥇 [Exclusivo] Seja um Membro VIP EXTREME! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Posts Recomendados

MVC é um padrão de arquitetura de software que separa a informação (e as suas regras de negócio) da interface com a qual o usuário interage.

 

É uma forma de estruturar seu projeto/aplicação de forma que a interface de interação (view) esteja separada do controle da informação em si (models), separação essa que é intermediada por uma outra camada controladora (controllers).

 

Não vou entrar em detalhes profundos sobre a arquitetura de um sistema baseado no MVC nem vou - por enquanto! - mostrar como criar um MVC do zero, mas vou tentar explicar cada uma das três camadas e dar exemplos de código do framework de PHP que - ao meu ver - faz um bom uso do MVC.

 

Model (ou modelo)

O model é a camada que representa os seus dados, provendo meios de acesso (leitura e escrita) à esses dados.

 

A regra é simples: tudo que diz respeito à escrita, validação e leitura dos dados está dentro da camada model, não necessariamente dentro do model em si, mas dentro da camada model.

 

Vemos aqui um exemplo de model de produtos (que vai prover o acesso à tabela products, no banco de dados) no arquivo Product.php:

 

É necessário se cadastrar para acessar o conteúdo.

 

Aqui temos um model bem simples, onde definimos as regras de validação e um método que vai auxiliar a encontrar os produtos mais recentes.

 

Não vou entrar nos detalhes do CakePHP, além do mais acho que o código é bem auto-explicativo.

 

Somente através desse model será possível cadastrar e buscar produtos, e quando um usuário for cadastrar ou editar uma notícia, aquelas regras de validação devem ser respeitadas, ou seja:

 

  • O título não pode ser vazio
  • A descrição não pode ser vazia nem ter menos de 100 caracteres
  • O preço precisa ser no formato decimal, com 2 casas decimais

Para saber mais sobre models no CakePHP, consulte a documentação:

É necessário se cadastrar para acessar o conteúdo.

 

Agora podemos partir para a camada que vai fazer uso desse model, pedindo uma lista de produtos..

 

Controller (ou controlador)

No controller você tem métodos públicos que são chamados de actions, cada action é responsável por uma “página” do seu site/sistema. É o controller quem decide:

 

  1. Qual model usar;
  2. Quais pedidos fazer pro model;
  3. Qual combinação de views será usada para exibir os dados retornados pelo model.

Atente que não é o controller que busca os dados (responsabilidade do model) e nem é ele quem exibe os dados (responsabilidade da view)… ele está ali justamente pra controlar os dois e a aplicação como um todo.

 

Vamos à um exemplo de controller no arquivo ProductsController.php:

 

É necessário se cadastrar para acessar o conteúdo.

 

Aqui temos duas actons:

 

  • Uma action (index) vai pedir (para o model) a lista de produtos mais recentes;
  • Outra action (view) vai pedir (para o model) os dados de um único produto.

Para saber mais sobre controllers no CakePHP, consulte a documentação:

É necessário se cadastrar para acessar o conteúdo.

 

Agora podemos exibir esses dados na camada responsável por isso…

 

View (ou visualização)

É na view que o seu sistema interage com o usuário. Tudo que ele ver (HTML / XML / RSS / CSV) deve ser gerado e exibido através dessa camada. A view, por sua vez, tem como responsabilidade:

 

  • Manipular os dados para - e apenas para - exibição;
  • Exibir os dados.

Mas a view não faz nenhum tipo de escrita/persistência no seu sistema… ela não salva dados no banco, na sessão e etc.. E ela também não busca esses dados, pois eles devem - obrigatoriamente - serem entregues pela camada controller.

 

Vamos ver então um exemplo de listagem dos produtos, no arquivo index.ctp:

 

É necessário se cadastrar para acessar o conteúdo.

 

Aqui temos uma mistura de HTML e PHP, e também fazemos uso do

É necessário se cadastrar para acessar o conteúdo.
, um Helper do CakePHP para ajudar na formatação de números.

 

Se você quiser saber mais sobre views no CakePHP, consulte a documentação:

É necessário se cadastrar para acessar o conteúdo.

 

Conclusão

Com o MVC você conseguirá organizar seu projeto de forma que tudo tenha seu lugar, e cada camada com sua responsabilidade, permitindo um trabalho muitos mais “centrado” e modularizado.

 

 

Fonte:

É necessário se cadastrar para acessar o conteúdo.

  • Curtir 1

qRXaV1L.png

Link para o comentário
https://www.webcheats.com.br/topic/2260918-o-que-%C3%A9-o-mvc/
Compartilhar em outros sites

Excelente post, a arquitetura MVC é mto útil. Vi bastante em Java mais especificamente FrontController na facul :)

  • Curtir 1

JN9zGsy.png

Link para o comentário
https://www.webcheats.com.br/topic/2260918-o-que-%C3%A9-o-mvc/#findComment-9033350
Compartilhar em outros sites

  • 1 mês depois...
Excelente post, a arquitetura MVC é mto útil. Vi bastante em Java mais especificamente FrontController na facul :)

 

O que é FrontController?

Link para o comentário
https://www.webcheats.com.br/topic/2260918-o-que-%C3%A9-o-mvc/#findComment-9039567
Compartilhar em outros sites

O que é FrontController?

É um "padrão de projeto" bastante usado programando em Java Web. Facilita na hora de implementar o MVC, commands etc.

  • Curtir 1

JN9zGsy.png

Link para o comentário
https://www.webcheats.com.br/topic/2260918-o-que-%C3%A9-o-mvc/#findComment-9039628
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.