Tutorial do PHP MVC Framework: Exemplo de CodeIgniter

O que é o framework PHP MVC?

PHP MVC é um padrão de design de aplicativo que separa os dados do aplicativo e a lógica de negócios (modelo) da apresentação (visualização). MVC significa Model, View & Controller.

O controlador faz a mediação entre os modelos e as visualizações.

Pense no padrão de design MVC como um carro e o motorista.

O carro tem os para-brisas (vista) que o motorista (controlador) usa para monitorar o tráfego à frente e depois acelerar ou frear (modelo) dependendo do que vê à frente.

Por que usar o PHP MVC Framework?

  • PHP MVC Frameworks simplifica o trabalho com tecnologias complexas;
    • Escondendo todos os detalhes de implementação complexos
    • Fornecendo métodos padrão que podemos usar para construir nossos aplicativos.
    • Aumento da produtividade do desenvolvedor, porque a implementação básica de atividades, como conexão ao banco de dados, higienização da entrada do usuário, etc., já está parcialmente implementada.
    • Aderência aos padrões de codificação profissionais

Neste tutorial, você aprenderá-

Padrão de Design PHP MVC

Vamos agora discutir brevemente cada componente do padrão de design MVC.

Modelo - esta parte se preocupa com a lógica de negócios e os dados do aplicativo. Ele pode ser usado para realizar validações de dados, processar dados e armazená-los. Os dados podem vir;

  • arquivo plano
  • base de dados
  • Documento XML
  • Outras fontes de dados válidas.

Controlador - esta é a parte que lida com as solicitações dos usuários por recursos do servidor.

Por exemplo, quando os usuários solicitam o URL … / Index.php? Products = list , o controlador carregará o modelo de produtos para recuperar os dados dos produtos e, em seguida, produzirá os resultados na exibição de lista.

Em suma, o controlador vincula os modelos e visualizações, dependendo dos recursos solicitados.

Visualizações - esta parte trata da apresentação dos dados ao usuário. Geralmente, é na forma de páginas HTML.

Tipos de framework PHP MVC

Selecionar a melhor estrutura de PHP é um desafio.

Você não precisa escrever sua própria estrutura para se beneficiar das vantagens do MVC.

Você deve apenas tentar criar seu próprio design de aplicativo relacionado ao MVC para entender como as estruturas MVC funcionam.

Quando estiver confortável com a maneira como os frameworks MVC funcionam, você deve passar para os frameworks maduros e já testados.

A tabela abaixo descreve brevemente alguns dos frameworks php populares e os recursos que cada um oferece.

Estrutura Descrição

CodeIgniter
https://codeigniter.com/
É um dos frameworks PHP MVC mais populares. É leve e tem uma curva de aprendizado curta. Possui um rico conjunto de bibliotecas que ajudam a construir sites e aplicativos rapidamente. Usuários com conhecimento limitado de programação OOP também podem usá-lo. Os aplicativos com base no CodeIgniter incluem;

Kohana
http://kohanaframework.org
É uma estrutura segura e leve Hierarchical Model View Controller HMVC. Possui um rico conjunto de componentes para desenvolver aplicativos rapidamente. As empresas que usam Kohana incluem;

CakePHP
www.cakephp.org
É modelado após Ruby on Rails. É conhecido por conceitos como padrões de design de software, convenção sobre configuração, ActiveRecord etc. Os aplicativos desenvolvidos com CakePHP incluem;

www.framework.zend.com
Zend
É uma estrutura poderosa;
  • Seguro, confiável, rápido e escalonável
  • Suporta Web 2.0 e criação de serviços web.
Possui APIs de fornecedores como Amazon, Google, Flickr, Yahoo etc. É ideal para o desenvolvimento de aplicativos de negócios. Os aplicativos desenvolvidos pelo Zend incluem;
  • Pimcore CMS,
  • DotKernel.
As empresas que usam o framework Zend incluem;
  • BBC
  • Cisco
  • Webex
  • Offers.com

Transferindo o aplicativo de pesquisa de opinião para o CodeIgniter

Nisso tutorial , criamos um aplicativo de votação em PHP. Aqui, iremos portar esse código para CodeIgniter

  • Download a última versão do CodeIgniter de seu local na rede Internet.
  • Extraia o conteúdo do arquivo compactado para o diretório de desenvolvimento no diretório do servidor da web. Usaremos ciopinionpoll como o nome da pasta nesta lição.
  • Navegue até o URL http: // localhost / ciopinionpoll /

Agora vamos portar nosso aplicativo de pesquisa de opinião para o CodeIgniter. Lembre-se de que nosso aplicativo foi dividido em três componentes principais, a saber;

  • Controlador frontal - esta é a parte que responde às solicitações de URL e retorna a página solicitada. Este código irá para o controlador
  • Modelo - este é o código que responde aos dados solicitados e retorna os dados solicitados. Este código irá para o modelo
  • Visualizações - este é o código responsável por formatar e exibir os dados. Este código irá para a vista
    • Navegue até a pasta ciopinionpoll
    • Abra o database.php arquivo localizado no diretório application / config.
    • Localize as seguintes linhas de código

Definições de configuração do banco de dados

  • Defina o nome de usuário para root
  • Defina a senha para sua senha de root do host local
  • Nome do banco de dados para Opinion_poll. Observe que usaremos o banco de dados criado na lição anterior.
  • Salve as alterações e feche o arquivo.

Criando Nosso Modelo

Em seguida, vamos criar nosso modelo que estenderá o CI_Model. O CI_Model faz parte das bibliotecas CodeIgniter. O modelo estará localizado na aplicação / modelos Opinion_poll_model.php

load->database(); } public function total_votes() { $query = $this->db->select('COUNT(choice) as choices_count')->get('js_libraries'); return $query->row()->choices_count; } public function get_results() { $libraries = array('', 'JQuery', 'MooTools', 'YUI Library', 'Glow'); $table_rows = ''; for ($i = 1; $i select($sql_stmt); $table_rows .= '' . $ libraries [$i] . ' Got:  ' . $result[0] . '  votes'; } public function add_vote($choice) { $ts = date('Y-m-d H:i:s'); $data = array('choice' => $choice, 'ts' => $ts); $this->db->insert('js_libraries', $data); } } ?>

AQUI,

  • class Opinion_poll_model extends CI_Model… é o nosso modelo que estende o CI_Model
  • … Parent :: __construct (); chama o construtor CI_Model
  • $ this-> load-> database (); carrega a biblioteca de banco de dados para que nosso aplicativo possa interagir com o banco de dados
  • $ this-> db-> é o registro ativo do CodeIgniter. Verifique isto ligação para obter mais informações sobre o registro ativo.

Criando nosso controlador Vamos agora criar o controlador. Usaremos o controlador CodeIgniter padrão localizado em application / controllers / welcome.php. Substitua seus códigos-fonte pelo código a seguir.

load->model('opinion_poll_model'); } public function index() { if ($this->input->post('submitbutton') && !$this->input->post('vote')) { echo 'alert('You did not vote!');'; } if ($this->input->post('vote')) { $this->opinion_poll_model->add_vote($this->input->post('vote')); $data['total_votes'] = $this->opinion_poll_model->total_votes(); $data['rows'] = $this->opinion_poll_model->get_results(); $this->load->view('results', $data); } else { $this->load->view('opinion_poll_form'); } } } /* End of file welcome.php */ /* Location: ./application/controllers/welcome.php */ ?>

AQUI,

  • if (! defined ('BASEPATH')) exit ('Nenhum acesso direto ao script permitido'); garante que os usuários não acessem diretamente a classe do controlador
  • classe Welcome estende CI_Controller ... nosso controlador estende a classe CI_Controller
  • public function __construct () chama o método do construtor de classe CI_Controller e carrega nosso modelo Opinion_poll_model
  • public function index ()… é a função que mapeia para index.php. ele usa a classe de entrada do CodeIgniter para verificar se um voto foi enviado, adicioná-lo ao banco de dados e exibir os resultados. Se o array post da classe de entrada estiver vazio, ele carrega a página de votação.
  • $ this-> input-> post ('…') é a classe de entrada do CodeIgniter que pega o conteúdo da variável global $ _POST.
  • $ this-> opinion_poll_model-> add_vote ($ this-> input-> post ('vote')) chama o método add_vote do modelo para adicionar o voto ao banco de dados.

Criando nossas opiniões

Lembre-se do exemplo anterior que tínhamos duas páginas HTML, uma para votação e outra para resultados. Usaremos o mesmo código HTML com modificações mínimas para criar nossas visualizações. Crie os seguintes arquivos no diretório application / views

opinion_poll_form.php JavaScript Libraries - Opinion Poll 

JavaScript Libraries - Opinion Poll

What is your favorite JavaScript Library?



JQuery
MooTools
YUI Library
Glow

Vamos agora criar a página de resultados results.php

 JavaScript Libraries - Opinion Poll Results 

JavaScript Libraries - Opinion Poll Results

What is your favorite JavaScript Library?



people have thus far taken part in this poll:

Return to voting page

Testando nosso aplicativo

Supondo que o diretório raiz do seu aplicativo seja ciopinion, navegue até http: // localhost / ciopionpoll /

Clique no botão OK e você verá a seguinte mensagem de alerta

Vote no seu candidato favorito e clique em OK. Você verá a seguinte página de resultados

Conclusão

CodeIgniter é um framework PHP MVC fácil de aprender e usar que pode reduzir bastante o tempo gasto no desenvolvimento de aplicativos.

Resumo

  • Uma estrutura é um conjunto de bibliotecas que fornecem implementação parcial de tarefas comuns.
  • O PHP tem uma série de frameworks MVC maduros e testados de código aberto.
  • Uma boa abordagem de desenvolvimento separa os dados da apresentação e incentiva o uso de um único ponto de entrada em um aplicativo.
  • Os aplicativos PHP tradicionais que seguem as melhores práticas de design de aplicativos podem ser transferidos para estruturas MVC com modificações mínimas.