Utilizando models no CodeIgniter
Veja neste artigo como utilizar os models do modelo MVC no framework PHP CodeIgniter.
Introdução aos models do Codeigniter
Neste artigo vamos falar sobre Models no CodeIgniter. O CodeIgniter é baseado no modo de desenvolvimento Model-View-Controller. A MVC é uma abordagem de software que realiza a separação da lógica da aplicação de sua apresentação. Na prática, permite que nossas páginas web contenham o mínimo de script, já que a apresentação é separada do PHP.
Observação: Models estão opcionalmente disponíveis para se quisermos usar a abordagem MVC mais tradicional.
Model: Representa nossas estruturas de dados. Tipicamente, nossas classes model irão conter funções que nos ajudarão a buscar, inserir e substituir informações em nosso banco de dados.
No CodeIgniter models são classes PHP projetadas para trabalhar a informação em nosso banco de dados. Por exemplo, suponhamos que vamos usar o CodeIgniter para gerenciarmos um portal. Poderíamos ter uma classe model contendo funções para inserir, atualizar e buscar nossos dados referentes ao portal no banco. Vejamos agora um exemplo de uma classe model.
Listagem 1: Exemplo de classe Model
class Portalmodel extends Model {
var $title ='';
var $content ='';
var $Date ='';
function Portalmodel()
{
// Chamar o construtor do Model
parent::Model();
}
function get_last_ten_entries()
{
$query=$this->db->get('entries',10);
return $query->result();
}
function insert_entry()
{
$this->title =$_POST['title'];
$this->contents =$_POST['content'];
$this->date =time();
$this->db->insert('entries',$this);
}
function update_entry ()
{
$this->Date =time();
$this->db->update('entries',$this, array('id',$_POST[]));
}
}
Estrutura do Model no Codeigniter
As classes model devem ser armazenadas no seguinte diretório: application/models/. Podemos também fazer o armazenamento em subpastas.
O protótipo básico de uma classe model é:
Listagem 2: Model protótipo básico
class Model_name extends Model {
function Model_name()
{
// Chamar o construtor do Model
parent::Model();
}
}
Onde temos “model_name”, colocamos o nome da nossa classe. Uma coisa muito importante que não podemos esquecer é que os nomes de classes devem ter a inicial sempre maiúscula e também devemos nos certificar de que nossa classe estende a classe model básica.
Quando fomos salvar esse model, o seu nome será o nome da classe, só que todo em minúsculo. Por exemplo, se nossa classe é:
Listagem 3: Nome ao salvar a classe
class Artigos_model extends Model {
function Artigos_model()
{
parent::Model();
}
}
Então nesse caso nosso arquivo ficaria com o seguinte endereço no nosso diretório: Application/models/artigo_model.php.
Carregando um model no Codeigniter
Nossos models serão tipicamente carregados e chamados dentro das funções de nossos controllers. Para carregarmos um model, usaremos a seguinte função: $this->load->model(‘nome-do-model’);
Porém, caso nosso model esteja em uma subpasta, temos que incluir o caminho relativo ao nosso diretório. Por exemplo, se tivermos um model localizado em application/models/portal/artigo_model.php. iríamos carregar ele da seguinte forma: $this->load->model(‘portal/nome-do-model’);
Uma vez que tenhamos carregado, vamos acessar as funções de nosso model utilizando um objeto como o mesmo classe que havíamos criado:
$this->load->model(‘nome-do-model’);
$this->nome-do-model->function();
Se desejarmos atribuir nosso model a um objeto de nome diferente, podemos especificar isto através do seguinte parâmetro da função de carregamento:
$this->load->model(‘model-do-model’,’fubar’);
Vejamos um exemplo de um controller que carrega um model e então serve uma view.
Listagem 4: Carregando um model e servindo a uma view
<?php
class Inicial extends CI_Controller {
function artigos()
{
$this->load->model('artigos_model')
$data['query']=this->artigos_model->get_last_ten_entries();
$this->load->view('viewprincipal',$data);
}
}
?>
Conectando ao Banco de Dados
Quando carregamos um model, ele não se conecta automaticamente ao nosso banco, as seguinte opções de conexão estão disponíveis:
Podemos conectar usando os métodos padrões de banco de dados, descritos aqui, através de nossa classe controller ou de sua classe model.
Podemos mandar a função de carregamento do model para se autoconectar passando TRUE (booleano) através do terceiro parâmetro, como definido no arquivo de configuração de banco de dados: $this->load->model(‘nome-do-model’,’’,TRUE);
Podemos também passar as configurações manualmente, também através do arquivo de configuração de banco de dados. Encontrado no diretório application/config/database.php.
Listagem 5: Dados do arquivo application/config/database.php
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = '';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
Afinal, o que entender sobre os models no CodeIgniter
Este artigo teve como objetivo apresentar um pouco dos models no CodeIgniter, não sendo obrigatória sua utilização em nossas aplicações web. Porém, nos deixando a disposição sua utilização, caso desejemos usar uma abordagem MVC completa. E tivemos a noção básica de como criarmos e carregarmos esses models. E por último vimos como modificar algumas configurações da conexão com o banco de dados.
Espero que tenha sido de fácil compreensão a todo os leitores. Fiquem a vontade para sugerir temas e dicas.
Abraços a todos e até ao próximo artigo.
Links Úteis
- Manual do PHP:
Site oficial do PHP - MYSQL:
Site Oficial do Mysql - PHP no Wikipedia:
Mais informações sobre o Wikipedia
Saiba mais sobre PHP ;)
- Introdução ao framework PHP CodeIgniter:
Veja neste artigo uma breve apresentação e introdução ao framework PHP CodeIgniter, que trabalha sobre o modelo MVC e nos fornece diversas ferramentas para agilizar o desenvolvimento das aplicações. - Trabalhando com controllers no CodeIgniter:
Veja neste artigo como funcionam os controllers no framework PHP CodeIgniter, como criar seus controllers e funções. - CodeIgniter: trabalhando com as Views do modelo MVC:
Veja neste artigo como funcionam as Views do modelo MVC no framework PHP CodeIgniter, entendendo como criá-las e manipulá-las em suas aplicações.
Artigos relacionados
-
DevCast
-
Artigo
-
Artigo
-
Artigo
-
Artigo