Exemplo de biblioteca em CodeIgniter: Calendar Library

Vejamos como trabalhar com uma biblioteca de CodeIgniter, especificamente com a biblioteca Calendar, que nos servirá como exemplo de uso de libraries.

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


Publicado em: 05/6/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 parar um pouco para ver 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 para espanhol
   ////////////////////////////////////////////////////
   function data_mysql_para_espanhol($data){
      ereg( "([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})", $data, $minhadata);
      $a data=$minhadata[3]."/".$minhadata[2]."/".$minhadata[1];
      return $adata;
   }

   ////////////////////////////////////////////////////
   //Converte data de espanhol para mysql
   ////////////////////////////////////////////////////
   function data espanhol_para_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 é recomendável para não inserir saltos de linha no final */

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

As salvamos com o nome de arquivo "Conversor_datas.php" (Também o "C" em maiúscula), 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 variável com uma data
      $fecha = "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 visão)
      echo $data_formato_mysql;
      
      //converto a data mysql para espanhol
      $data_formato_espanhol = $this->conversor_datas->data_mysql_a_espanhol($data_formato_mysql);
      //mostro a data (deveria usar uma visão)
      echo "<br>" . $data_formato_espanhol;
   }
   
}
?>

Como já devemos saber, devemos salvar o controlador no diretório system/application/controllers y com o mesmo nome da classe que criamos, com a extensão .php y 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 para acessar a este controlador dependerá um pouco de onde você tenha instalado seu CodeIgniter, mas se você o tiver na raiz de seu domínio poderá acessar através de uma URL como esta:

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

Ou se o ocultamos o index.php através de um .htaccess:

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

Por agora 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