PHP CodeIgniterでPEARを使う @さくらのレンタルサーバ

さくらのレンタルサーバに設置したCodeIgniterでPEARを使うメモです。

PEARを設置

applicationディレクトリ内にpearディレクトリを作成します。
system/application/pear


その中にPEAR.phpと使用するPEAR(Cryptを入れてみました。)を入れます。
system/application/pear/PEAR.php
system/application/pear/Crypt/Blowfish.php

Hooksを有効にする

system/application/config/config.phpを編集
$config['enable_hooks'] = TRUE;  
system/application/config/hooks.phpを編集

下記を追加

$hook['pre_controller'][] = array(
  'class' => 'Pear_hook',
  'function' => 'index',
  'filename' => 'pear_hook.php',
  'filepath' => 'hooks'
);  
system/application/hooks/pear_hook.phpを作成
<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');

class Pear_hook{
  function index(){
  // OS independent
  ini_set('include_path',ini_get('include_path').PATH_SEPARATOR.BASEPATH.'application/pear/');
  // on Apache
  // ini_set('include_path',ini_get('include_path').':'.BASEPATH.'application/pear/');
  // on Windows
  // ini_set('include_path',ini_get('include_path').';'.BASEPATH.'application/pear/');
  }
}
?>

PEARを読み込むライブラリを作成する

system/application/libraries/Pearloader.phpを作成
<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');

class Pearloader{
  function load($package, $class,$options = null){
   require_once($package.'/'.$class.'.php');
   $classname = $package."_".$class;
   if(is_null($options)){
  return new $classname();
   }else{
  return new $classname($options);
   }
  }
}
?>

では使ってみます

Cryptで暗号化してみる。
function sample(){

	$crypt_key = "23497810928374";//暗号鍵

	$this->load->library('pearloader');
	$blowfish = $this->pearloader->load('Crypt', 'Blowfish', $crypt_key);
		
	$str = $blowfish->encrypt("テストです。");

	echo $str;
		
}

「テストです。」が暗号化された文字列が表示されるはずです。



このメモはオフィシャルのチュートリアルとほぼ同じ内容ですので、動作しない場合はこちらをご確認ください。
http://codeigniter.com/wiki/PEAR_integration/