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 (visualização) 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
- Tipos de framework PHP MVC
- Transferindo o aplicativo de pesquisa de opinião para o CodeIgniter
- Definições de configuração do banco de dados
- Criando Nosso Modelo
- Criando nossas opiniões
- Testando nosso aplicativo
Padrão de Design PHP MVC
Vamos agora discutir brevemente cada componente do padrão de projeto 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 - é a parte que lida com as solicitações dos usuários por recursos do servidor.
Por exemplo, quando os usuários solicitarem a URL… /index.php?products=list, o controlador carregará o modelo de produtos para recuperar os dados dos produtos e, em seguida, exibirá 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 framework 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 baseados em CodeIgniter incluem;
|
Kohana http://kohanaframework.org | É uma estrutura segura e leve Hierarchical Model View Controller HMVC. Ele 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 pelo CakePHP incluem;
|
www.framework.zend.com Zend | É uma estrutura poderosa;
|
Transferindo o aplicativo de pesquisa de opinião para o CodeIgniter
Neste tutorial, criamos um aplicativo de votação em PHP. Aqui, iremos portar esse código para CodeIgniter
- Baixe a última versão do CodeIgniter de seu site.
- 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 arquivo database.php 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 em application / models 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 < 5; $i++){$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";$result = $model->select($sql_stmt); $table_rows .= "";}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);}}?> " . $ libraries [$i] . " Got: " . $result[0] . " votes
AQUI,
- “Class Opinion_poll_model extends CI_Model…” é o nosso modelo que estende o CI_Model
- “… Parent :: __construct ();” chama o construtor CI_Model
- “$ This-> carregar-> banco de dados ();” 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 este link 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 "";}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
- “Class Welcome extends CI_Controller…” nosso controlador estende a classe CI_Controller
- “Public function __construct ()” chama o método do construtor da 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.phpJavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript Library?
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:
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.
- 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.