Framework CodeIgniter MVC (Model View Controller) com exemplo

Índice:

Anonim

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