Aprenda a integrar o Code Igniter com o repositório PEAR.

Posted on the setembro 6th, 2009 under Code Igniter, Code Igniter + PEAR by admin

Alguns já devem ter tido a necessitade de adicionar um pouco mais de robustez ao codeigniter. há alguns dias atrás eu tive a necessidade de fazer realizar essa tarefa. motivo?

“Desenvolver apenas o que é para ser desenvolvido e, melhorar o que já existe.”

Sendo assim começarei aqui a explicar sobre como podemos integrar o code igniter ao respositório PEAR com segurança. afinal, acima eu disse. “Desenvolver apenas o que é para ser desenvolvido e, melhorar o que já existe.”.

Cheguei no artigo oficial da elluslab no qual estava explicando sobre como integrar o Code Igniter ao PEAR.

Seguindo o tutorial não encontrei problemas para saber onde poderia mudar as informações necessárias para extender um pouco mais ainda o codeigniter, para que no final tudo funcionasse corretamente. mas não foi bem assim que terminou.

Obs: o tutorial abaixo é de autoria da elluslab. você pode encontrar o artigo original aqui.

Code Igniter + PEAR

1. Passo – Crie uma pasta com permissão para leitura e escrita, chamada PEAR (minusculo).

system/application

2. Passo – Copie a biblioteca do PEAR. você pode fazer download em http://pear.php.net

system/application/pear/PEAR.php

3. Passo – Ative seus hooks dentro do seu arquivo config.php

$config['enable_hooks'] = TRUE;

4. Passo – Dentro do diretório system/application/config tem um arquivo chamado hooks.php, abra ele e adicione o hook do seu PEAR.

$hook['pre_controller'][] = array(
'class' => 'Pear_hook',
'function' => 'index',
'filename' => 'pear_hook.php',
'filepath' => 'hooks'
);

5. Passo – Criar o arquivo do hook do PEAR. o nosso arquivo deverá se chamar “pear_hook”. isso acontece por que no arquivo hooks.php dentro do diretório config. nós definimos que o “filename” seria “pear_hook”.

6. Passo – Criar a biblioteca que irá extender o CI para as bibliotecas do PEAR. dentro do diretório “system/application/libraries” iremos criar um arquivo chamado “Pearloader.php” e e então copie e cole a informação abaixo dentro dele.

7. Passo – Testar a instalação sugerida pela elluslab.

load->library('pearloader');
$http_request = $this->pearloader->load('HTTP','Request');
$http_request->setURL($url);
$http_request->sendRequest();
echo $http_request->getResponseBody();
}
?>

Uso, o metodo load da nossa library “pearloader” ele tem como padrão tem 2 parâmetros obrigatório e 1 parâmetro opcional. abaixo tem uma definição desses parâmetros.

package: pacote do pear que está carregando. referente ao diretório que do pacote do pear que está dentro da pasta da sua aplicação. “system/application/pear”.

class: a classe mae do pacote.

options: caso a classe tenha metódos para inicializar a classe é possivel passar os parametros nas options.

Pronto, se deu tudo certo no final é por que está funcionando. infelizmente ainda não sei lhe dizer por que em alguns lugares eu tive problemas e em outros lugares não.

se caso tiver esse problema, a solução para resolver de uma forma definitiva é configurando mais algumas coisas.

1. Passo – Altere a biblioteca pearloader.php dentro do diretório. “system/application/libraries”.

2. Passo – Altere a base para require dentro das bibliotecas do pear. dentro do diretório. “system/application/pear/”.

require_once BASEPATH.'application/pear/PEAR.php';

3. Passo – Testando o hack.

$this->load->library('pearloader');
$this->pearloader->load('Barcode','Barcode','Image_Barcode');
 
Image_Barcode::draw($codPaciente . "00", 'int25', 'png');
 
imagepng($img);
imagedestroy($img);

Fim.

É isso, encontrei diversas vezes o mesmo problema neste tipo de integração e sempre usei essa mesma solução. esta testada e comprovada portanto deixo aqui o meu grande agradecimento a equipe da elluslab por ter criado pelo menos metade da solução para resolver meu problema.

José Wilker

2 Responses to 'Aprenda a integrar o Code Igniter com o repositório PEAR.'

  1. 27 de setembro de 2009 às 2:57 PM
    admin
  2. 5 de outubro de 2009 às 2:24 PM
    admin

Leave a Reply

You must be logged in to post a comment.