CodeIgniter

CodeIgniterでPEARを使う

更新日:

CodeIgniterで使い慣れたPEARを使えないか調べてみました。CodeIgniterの『フック機能』を使って、PEARを使えるようになったので、その方法を記載したいと思います。

PEARのダウンロード

以下のPEARの公式サイトへ行き、PEARをダウンロードします。

http://pear.php.net/package/PEAR/download

2011/08月の最新版は1.9.4です。ダウンロードしたPEAR-1.9.4を解凍すると、中に『PEAR-1.9.4』フォルダがあります。このフォルダ名を小文字の『pear』に変更します。そしてこのフォルダをいったん、ローカルの『system』フォルダにフォルダごとドラッグしてコピーします。

次に、必要なパッケージを検索してダウンロードし、『pear』フォルダの中に入れます。とりあえず使い慣れたMailパッケージをインストールしてみます。先程のダウンロードページからSeach forの中に『mail』と入力して、検索します。ダウンロードしたいパッケージをクリックします。

『Download』のタブをクリックし、下の『Download』の1.2.0と書かれた文字(バージョンにより数字は変わります)をクリックしてダウンロードします。

ダウンロードした『Mail-1.2.0』を解凍し、中にある『Mail-1.2.0』フォルダを『Mail』に変更します。先程と同じように、今度は、先程ドラッグ&コピーした『pear』フォルダの中に『Mail』フォルダごとドラッグ&コピーします。一通り必要なパッケージをコピーし終わったら、リモートサーバー(レンタルサーバー)に『pear』フォルダごとアップします。

次に『application/config』フォルダの『config.php』ファイルを開き、94行目の『config['enabele_hooks']=FALSE;』のFALSEをTRUEに変更します。これで『フック』機能が使えるようになります。

次に、『application/config』フォルダの『hooks.php』ファイルを開き、下記のコードを追加します。

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

上記のコードで配列を多次元配列にしているのは、複数のスクリプトを同じフックポイントで使えるようにするためです。他にもコントローラが呼び込まれる直前に使いたいフックを追加する可能性があるので、多次元配列にしています。

最後に、『application/hooks』フォルダに『pear_hooks.php』ファイルを作成し、下記のコードを入力します。

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

class Pear_hook
{
function index(){
ini_set('include_path',ini_get('include_path').PATH_SEPARATOR.BASEPATH.'pear/');
}
}

それでは、実際に動くのか検証してみます。『applicatio/controllers』フォルダに『pear_mail_sample.php』ファイルを作成し、下記のコードを入力します。

class Pear_mail_sample extends CI_controller{

function index()
{
require_once('Mail/Mail.php');

$subject=mb_encode_mimeheader('テスト','ISO-2022-JP');
$recipients='nakada@i.softbank.jp';
$headers=array(
'From'=>'nakada@gmail.com',
'To'=>'winroad@gmail.com',
'Subject'=>$subject,
'Sender'=>'nakada@gmail.com'
);
$body='これはCodeIgniterからのPearによるテストメールです';

//メールを送信する
$mail=Mail::factory('sendmail');
$result=$mail->send($recipients,$headers,$body);
}
}

きちんとメールが送信されてきました。これでCodeIgniterでPEARが使えるようになりました。CodeIgniterで使い慣れたPEARが使えるとかなり便利になります。

本日は以上です。

-CodeIgniter
-

Copyright© WinRoad徒然草 , 2018 All Rights Reserved Powered by AFFINGER5.