Exemplo de criação e uso de uma biblioteca em CodeIgniter

Vamos criar uma biblioteca própria em CodeIgniter e em seguida carregá-la a partir de um controlador e utilizar seus métodos.

Por Miguel Angel Alvarez - Tradução de Celeste Veiga


Publicado em: 12/7/12
Valorize este artigo:
No artigo anterior do Manual de CodeIgniter vimos os passos e especificações para criar nossas próprias bibliotecas, de modo que será bom nos determos vendo um exemplo de uma biblioteca criada por nós mesmos.

Vamos fazer uma biblioteca com algumas funções para converter formatos de datas. A funcionalidade em si não importa muito, o que nos interessa é ver como se faz. No artigo continuaremos com o procedimento para carregar a biblioteca a partir de um controlador de CodeIgniter e utilizá-la invocando seus métodos.

Biblioteca própria em CodeIgniter: Conversor_datas

Este seria o código de nossa biblioteca de exemplo.

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Conversor_datas{
   
   ////////////////////////////////////////////////////
   //Converte data de mysql a espanhol
   ////////////////////////////////////////////////////
   function data_mysql_a_espanhol($data){
      ereg( "([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})", $data, $minhadata);
      $adata=$minhadata[3]."/".$minhadata[2]."/".$minhadata[1];
      return $adata;
   }

   ////////////////////////////////////////////////////
   //Converte data de espanhol a mysql
   ////////////////////////////////////////////////////
   function data_espanhol_a_mysql($fecha){
      ereg( "([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})", $data, $minhadata);
      $adata=$minhadata[3]."-".$minhadata[2]."-".$minhadata[1];
      return $adata;
   }
   
}

/* Fim do arquivo */
/* Não necessito fechar PHP e na verdade não se recomenda para não inserir saltos de linha ao final */

Como se pode ver, foi criada uma classe chamada "Conversor_datas" (o "C" inicial em maiúsculas) e duas funções que serão as que nos aporte a biblioteca quando a carreguemos.

Salvamos com o nome de arquivo "Conversor_datas.php" (Também o "C" em maiúsculas), na seguinte rota:

system/application/libraries

Controlador que carrega a própria biblioteca

Agora podemos fazer um controlador para testar esta biblioteca. Para isso criamos o arquivo do controlador com um código como este:

<?php
class Converto_datas extends Controller {

   function index(){
      //crio uma variavel com uma data
      $data = "21/07/2010";
      //carrego a biblioteca para converter datas
      $this->load->library('conversor_datas');
      //mudo a data de formato
      $data_formato_mysql = $this->conversor_datas->data_espanhol_a_mysql($data);
      //mostro a data (deveria usar uma visao)
      echo $data_formato_mysql;
      
      //converto a data mysql a espanhol
      $data_formato_espanol = $this->conversor_datas->data_mysql_a_espanhol($data_formato_mysql);
      //mostro a data (deveria usar uma visao)
      echo "<br>" . $data_formato_espanhol;
   }
   
}
?>

Como certamente já sabemos, devemos salvar o controlador no diretório system/application/controllers ,e com o mesmo nome da classe que criamos, com a extensão .php e em minúsculas: converto_datas.php.

Suponho que não será problema localizar o lugar do código onde se carrega a biblioteca:

$this->load->library('conversor_datas');

E o lugar onde utilizamos os métodos da biblioteca para acessar suas funcionalidades:

$data_formato_mysql = $this->conversor_datas->data_espanhol_a_mysql($data);

Nota: Neste controlador estamos escrevendo diretamente na página sem utilizar as visões. É só um teste e CodeIgniter nos permite, mas não é uma boa prática. Deveríamos utilizar uma visão.

A URL com que acessar este controlador dependerá um pouco de onde você tenha instalado seu CodeIgniter, mas só se você o colocou na raiz de seu domínio poderá acessar através de uma URL como esta:

http://www.ejemplo.com/index.php/convierto_fechas/

O se tivermos ocultado o index.php através de um .htaccess:

http://www.ejemplo.com/convierto_fechas/

De momento aprendemos a criar uma biblioteca 100% desenvolvida por nós e integrada dentro de nosso CodeIgniter. No artigo seguinte mostraremos um detalhe importante que devemos implementar em nossas bibliotecas para acessar os recursos do framework CodeIgniter a partir do código de suas próprias bibliotecas.






Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato