[PHP-users 24565] Re: PEARライブラリのインストールの有無を検出するには?

KOYAMA Tetsuji koyama @ hoge.org
2005年 2月 16日 (水) 19:59:31 JST


  小山です。えらい昔のメールに対する返事ですが…

At Thu, 10 Feb 2005 18:33:33 +0900,
K.Watanabe <kei @ fox.dti2.ne.jp> wrote:
> こんな感じのスクリプトで済みましたが、PEAR::DB、あるいはPEAR自体のインス
> トールの有無をどうやって検出するかで思案中です。
> 
> ini_get('include_path') でパスを取得して:;で分割して、そのどこかにDB.php
> とかがあるか調べる・・・という手を考えてみました。
> でもPEARなら、ライブラリの存在だけでなく依存バージョンのチェックまででき
> るような、都合のいいコマンドが用意されているのではないだろうか・・と思っ
> た次第です。

  PEAR_Info というパッケージがあって、まさにそのようなことをやってくれ
ます。中身は結構簡単なので、どのようなコードを書けば PEAR パッケージの
情報を得られるか一発で分かると思います。

  例えば、インストールされているパッケージのリストを得るにはこんな感じ。

<?php

require_once 'PEAR/Config.php';
require_once 'PEAR/Registry.php';

$config = new PEAR_Config();
$reg = new PEAR_Registry($config->get('php_dir'));
$packages = $reg->listPackages();
var_dump($packages);

?>

  いっそのこと pear コマンドを system() を用いて実行するのが、手っ取り
早い気がしなくもありません。:-)

-- 
	小山 哲志@ビート・クラフト
	koyama @ beatcraft.com
	koyama @ hoge.org


PHP-users メーリングリストの案内