cakephpで個別にpearライブラリをインストールする方法

標準

ちょっとバッドノウハウな気もしますが、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宛につぶやいていただければ、たぶんご返答いたします。

One Comment

  1. Pingback: cakephpでPEARライブラリを利用する。 @ php-tips

コメントを残す

Page optimized by WP Minify WordPress Plugin