ちょっとバッドノウハウな気もしますが、cakephpでpearライブラリをインストール/利用する方法について。
0. ポリシー
cakeのvendors配下にpearを個別インストールして、そこでライブラリの追加を行えるようにします。
# windows環境の場合は適当に読み替えてください。
1. pearをvendorsへ個別インストール
既にpearが、システムへインストールされていることが前提です。
インストールされていない場合は、
lynx -source http://pear.php.net/go-pear | php
curl http://pear.php.net/go-pear | sudo php
等で、インストールしてください。
(参考: pear.php.net Manual :: インストール)
vendors ディレクトリに移動してpearのローカル設定ファイルを生成します。
cd vendors pear config-create `pwd` pear.conf
各パスを書き換えます。
pear -c pear.conf config-set bin_dir `pwd`/bin pear -c pear.conf config-set ext_dir `pwd`/pear-ext pear -c pear.conf config-set php_dir `pwd`/pear pear -c pear.conf config-set cfg_dir `pwd`/pear/cfg pear -c pear.conf config-set doc_dir `pwd`/pear/docs pear -c pear.conf config-set data_dir `pwd`/pear/data pear -c pear.conf config-set test_dir `pwd`/pear/test pear -c pear.conf config-set www_dir `pwd`/pear/www pear -c pear.conf config-set temp_dir `pwd`/tmp/pear/temp pear -c pear.conf config-set cache_dir `pwd`/tmp/pear/cache pear -c pear.conf config-set download_dir `pwd`/tmp/pear/download
正しくパス設定されているか確認します。
pear -c pear.conf config-show
cakephp1.2以前は、PEAR定数で、’vendors/Pear’と定義しているのでパスを修正します。(cakephp 1.3以降なら不要)
sed -e 's!/vendors/pear/!/vendors/Pear/!g' pear.conf > pear.conf.tmp mv pear.conf.tmp pear.conf
※cakephp1.3以降は ‘vendors/pear’ へインストールされます。
コアライブラリをインストールします。
pear -c pear.conf install -o PEAR
‘-c’ オプションで、ローカル設定用ファイルを指定することを忘れずに
Mail_Mimeパッケージを例に、pearライブラリを追加してみます。
./bin/pear -c pear.conf install -o Mail_Mime
‘-c’ オプションで、ローカル設定用ファイルを指定することを忘れずに
2. bootstrap.phpを書き換え
app/config/bootstrap.phpへ下記行を追記します。
if (!defined('PEAR')) { // cakephp1.3 beta以降の場合 PEAR定数が定義されていないので定義する。 define('PEAR', VENDORS . 'pear' . DS); } // include_path に pearのライブラリパスを追加 set_include_path(PEAR . PATH_SEPARATOR . get_include_path());
3. model, controller等での呼び出し方法
App::importを使用してクラスファイルをロードします。
App::import('vendor', 'Mail_mime', array('file' => 'Mail/mime.php')); $mime = new Mail_mime(); // ... ほにゃらら
こちらも参考に: cakephpでPEARライブラリを利用する。 @ php-tips
本記事についてのご意見、ご質問があればコメントを入れていただくか、 twitterにて@nojimage宛につぶやいていただければ、たぶんご返答いたします。
Pingback: cakephpでPEARライブラリを利用する。 @ php-tips