Aprenda a integrar o Code Igniter com o repositório PEAR.
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
admin
Interessante, gostei.
admin
mais um comentário somente para teste.