O que é MVC?
Padrões MVC para Model-View-Control. É um padrão de arquitetura que divide o aplicativo em três componentes principais.
1. O modelo lida com lógica de negócios e interações de banco de dados
2. O controlador coordena as atividades entre o modelo e a visualização
3. View é responsável pela apresentação dos dados
A seguir estão algumas das vantagens do padrão arquitetônico MVC
- Acoplamento fraco - os componentes existem e funcionam independentemente um do outro.
- Flexibilidade - pode-se facilmente fazer alterações em componentes individuais
- Maior produtividade - mais de uma pessoa pode trabalhar no projeto ao mesmo tempo. Os desenvolvedores de front-end podem trabalhar em visualizações e apresentações, enquanto os desenvolvedores de back-end podem se concentrar em modelos e, como o sistema é fracamente acoplado, ele funciona no final do dia
Neste tutorial, você aprenderá:
- O que é MVC?
- Modelo
- Controlador
- Visualizar
- Como funcionam os frameworks MVC?
- Controlador CodeIgniter
- Modelo CodeIgniter
Modelo
O modelo é responsável por interagir com as fontes de dados. Geralmente é um banco de dados, mas também pode ser um serviço que fornece os dados solicitados. Também é uma prática comum ter a lógica de negócios contida nos modelos em oposição ao controlador. Essa prática é geralmente chamada de controlador magro de modelo de gordura.
O modelo geralmente grava dados no banco de dados, fornece um mecanismo para edição, atualização e exclusão de dados. Em um aplicativo da web moderno, os modelos usam padrões de design de acesso a dados, como registro ativo, para facilitar a interação com o banco de dados.
Por exemplo, o CodeIgniter usa uma biblioteca integrada Active Record para auxiliar os modelos, enquanto outros frameworks, como o Laravel, usam o Eloquent Object Relational Mapper (ORM) que auxilia no acesso aos dados.
Controlador
O controlador escuta as solicitações de entrada de recursos dos usuários. Ele atua como intermediário entre o modelo e a visualização e, às vezes, também implementa algumas regras de negócios. Digamos que o controlador receba uma solicitação para registrar um usuário no banco de dados.
O controlador pode realizar a validação de dados sobre o que foi enviado para garantir que todos os parâmetros necessários foram enviados. Se algo estiver faltando, o usuário será redirecionado para a página de registro com a mensagem de erro apropriada exibida. O controlador também pode solicitar que o modelo execute mais validação, verificando se o endereço de e-mail enviado já existe. Se todas as regras de validação forem aprovadas, o controlador envia os dados ao modelo para processo e espera pela resposta.
Uma vez que o modelo processou as informações e retornou uma resposta positiva, o controlador carrega a visualização apropriada e passa os dados retornados do modelo como um parâmetro.
Visualizar
A visão lida com os dados apresentados ao usuário final. Em aplicativos da web, as visualizações geralmente contêm HTML, CSS e, opcionalmente, JavaScript. As visualizações contêm código de programação mínimo. O código contido em visualizações é geralmente usado para fazer um loop em coleções de dados recebidos como parâmetros do modelo ou função auxiliar para limpar dados ou criar links para editar os registros. A maioria dos aplicativos da web modernos geralmente usa mecanismos de modelagem que definem sua própria sintaxe, que é mais como um pseudocódigo e pode ser facilmente compreendida por designers. Ao trabalhar com o CodeIgniter, é prática comum usar tags PHP curtas e estruturas de controle. Para exibir algo no CodeIgniter, pode-se usar o seguinte código
Ao contrário de
As estruturas de controle são geralmente escritas da seguinte forma
Como você pode ver no exemplo acima, a visualização usará uma combinação de PHP e HTML em vez de incluir tudo em código PHP puro.
Como funcionam os frameworks MVC?
A imagem a seguir mostra que o framework MVC funciona
Um controlador recebe a solicitação do usuário, interage com o modelo de banco de dados se necessário e retorna o resultado ao navegador na forma de código HTML que o navegador interpretou em um formato legível e exibido ao usuário.
Controlador CodeIgniter
Vamos agora detalhar o que aconteceu quando carregamos a URL acima no navegador da web.
Abra o arquivo Welcome.php controlador localizado aplicativo / controladores
Você deve ser capaz de ver o seguinte código
load->view('welcome_message');}}
AQUI,
- definido ('BASEPATH') OU saída ('Nenhum acesso direto ao script permitido'); impede o acesso direto ao controlador se a solicitação não veio por meio de index.php. isso é para fins de segurança.
- class Welcome extends CI_Controller {…} define a classe do controlador Welcome e estende a classe pai CI_Controller
- public function index () {…} define o método de índice que responde ao URL http: // localhost: 3000
- $ this-> load-> view ('welcome_message'); carrega a view welcome_message que está localizada no diretório application / views
Vamos agora atualizar o método de índice da seguinte forma
public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}
AQUI,
- $ this-> load-> model ('customers_model'); carrega o modelo de clientes.
- $ data ['customer'] = $ this-> customers_model-> get_customer (3); chama o método get_customer de customers_model e passa no parâmetro 3. Neste exemplo, codificamos o valor permanentemente, mas em aplicativos da vida real, esse seria um parâmetro do URI.
- $ this-> load-> view ('welcome_message', $ data); carrega a visão welcome_message e passa a variável $ data para a visão
Modelo CodeIgniter
Vamos agora criar a visualização que referimos no código acima. Para simplificar, nosso modelo não interagirá com o banco de dados, mas retornará um registro estático do cliente. Trabalharemos com bancos de dados nos próximos tutoriais.
Crie um arquivo Customers_model.php em application / models
Adicione o seguinte código
AQUI,
- class Customers_model extends CI_Model {…} define o modelo Customers_model que estende CI_Model.
- public function get_customer ($ id) {…} define o método get customer com base em um id de cliente
- $ data […] define os valores estáticos do nosso cliente fictício. Deve ser uma linha retornada do banco de dados.
- return $ data; retorna os dados do cliente.
Ou seja, para o nosso modelo. Vamos agora modificar a visualização welcome_message
Abra welcome_message.php localizado em
application/views/welcome_message.php
Substitua o código pelo seguinte
CodeIgniter MVC Basics Customer Details Card
Customer ID :
First Name :
Last Name :
Address :
Salve as alterações
Carregue o seguinte URL no navegador da web
http: // localhost: 3000 /
Você deve ser capaz de ver o cartão do cliente conforme mostrado na imagem abaixo
Resumo
- MVC é um padrão arquitetônico que divide o aplicativo em três componentes principais
- O modelo é responsável por interagir com as fontes de dados
- O controlador escuta as solicitações de entrada de recursos dos usuários
- Em aplicativos da web, as visualizações geralmente contêm HTML, CSS e, opcionalmente, JavaScript
- Um controlador recebe a solicitação do usuário, interage com o modelo de banco de dados se necessário e retorna o resultado para o navegador na forma de código HTML