Criando e configurando a aplicação - Entendendo o padrão MVC na prática - Parte 10 Artigo

Conheça os cursos gratuitos do WebDevBr! - Inscreva-se!


Este artigo foi publicado a 2 anos, 5 meses, 3 semanas, 3 dias atrás.

É isso ai, nosso framework está pronto, agora vamos ver um exemplo simples de utilização, pra não estender muito vamos apenas listar dados do banco em um tema do Twitter Bootstrap, neste artigo vamos ver a parte lógica da coisa, só vamos trabalhar no diretório App apenas.

Os outros artigos desta série.

A primeira coisa a se fazer é acessar App/Core/Config.php e inserir as configurações de banco de dados, o resultado final deve ser este (claro, com os seus dados de acesso):

Gostou deste artigo?

Receba atualizações semanais com novos artigos do WebDevBr e outras dicas!

<?php

namespace App\Core;

class Config
{
    public $database = array(
        'tipo'=>'Mysql',
        'servidor'=>'localhost',
        'usuario'=>'root',
        'senha'=>'',
        'database'=>'meuframework',
    );

}

Dentro de App\Modulos, vamos criar um diretório com Index, como eu estou criando a 'home' vou chamar de Index, assim quando eu chamar '/' no navegador ele vai cair aqui.

Dentro dele vou criar 2 arquivos, um chamado Model.php e outro chamado Controller.php.

Agora ficou muito simples criar estes arquivos, só preciso estender as classes do Core.

O Model.php

<?php

use Erik\Core\Master_Model;

class Index_Model extends Master_Model
{
    public function teste()
    {
        return $this->db->read('all', ['where'=>['id'=>3]]);
    }
}

O Controller.php

<?php

use Erik\Core\Master_Controller;

class Index_Controller extends Master_Controller
{
    public function index()
    {
        $this->view->set('teste', $this->model->teste());
    }
}

Pronto,  no Model.php eu criei um método chamado teste() que faz a requisição de dados do banco, lembre-se que este arquivo (Model.php) é automaticamente instanciado no Controller em $this->model assim que eu chamo a URL, então eu simplesmente uso o comando $this->model->teste() pra executa-lo no Controller.php (que é quem foi realmente carregado e executado quando a URL disparou). Eu chamei o método teste() do Model dentro de $this->view->set(), isso enviar o retorno do banco para a minha view renderizar.

Note que o controller pede o método teste() para o model, e em seguida envia para a view, ou seja, ele está gerenciando o que deve acontecer.

Neste momento temos uma aplicação com um erro, vamos corrigir isso no próximo artigo e implementar a view.

Aqui o SQL (para MySql) que estou usando:

DROP TABLE IF EXISTS `index`;
CREATE TABLE `index` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `index` (`id`, `nome`) VALUES
(1, 'Erik'),
(2, 'Erik A. Figueiredo'),
(3, 'Erik Figueiredo');

É isso ai, até a próxima aula :)

Aqui os arquivos desta aula e o estudo completo.


Cursos relacionados


* Parcelamento apenas cartão de crédito! Pode haver uma pequena variação no parcelamento em relação a simulações apresentadas!