FAQ

FAQ -- よくある質問とその答え

PEAR_Info の FAQ

1. 全般的な質問
1.1. 使用料は?
1.2. サポートはありますか?
1.3. バグを見つけました。どうしたらいいですか?
1.4. PEAR って何ですか?
2. ○○するには
2.1. システムの設定を表示させたいのですが、検出できません。
2.2. PEAR_Info の出力の見た目 (色など) を変更したいのですが?
2.3. すべてのチャネルのパッケージ情報を表示したいのですが?
2.4. パッケージがインストールされているかどうかを知りたいのですが?

1. 全般的な質問

1.1. 使用料は?

自由にダウンロードして使用することができます。 しかし、著作権に関する注意書きは削除しないでください。 ライセンス を確認ください。

1.2. サポートはありますか?

はい。ただし、このドキュメントを読んでも答えが見つからない場合に限ります。 また、サポートをするためにはある程度の情報 (使用しているプラットフォームが Window か *nix か Mac か、 PHP のバージョン、インストールしている PEAR パッケージなど) が必要です。場合によってはあなたの書いたスクリプトそのものも必要かもしれません。

1.3. バグを見つけました。どうしたらいいですか?

PEAR のバグトラッカーで報告してください。

1.4. PEAR って何ですか?

PEAR ( PHP Extension and Application Repository の短縮形) は、再利用可能な PHP コンポーネントのフレームワーク、 そしてその配布システムのことです。

PEAR マニュアルPEAR FAQ も忘れずに読んでください。

2. ○○するには

2.1. システムの設定を表示させたいのですが、検出できません。

システムファイル (pear config-show コマンドを参照ください) が存在しなかったり別の場所にあったりする場合は、その情報を PEAR_Info クラスのコンストラクタで指定しなければなりません。

<?php
// @link http://pear.php.net/bugs/bug.php?id=12878
//       pear.conf を /etc/pear/ から探します

require_once 'PEAR/Info.php';

$pear_dir  = '';
$user_file = '';
$syst_file = '/etc/pear/pear.conf';

$info = new PEAR_Info($pear_dir, $user_file, $syst_file);
$info->display();
?>

2.2. PEAR_Info の出力の見た目 (色など) を変更したいのですが?

まずは、デフォルトのスタイルシートである pearinfo.css ({data_dir}/PEAR_Info にあります。 pear config-show コマンドを参照ください) をコピーします。 それから、色やその他の設定をお好みにあわせて変更します。 CSS のセレクタはそのままにしておいてください。

青系統の配色にしたサンプルが、パッケージのインストール先の {doc_dir}/PEAR_Info/examples/blueskin.css にあります。

最後に {doc_dir}/PEAR_Info/examples/pear_info2.php スクリプトで、 新しいスタイルシートを PEAR_Info::setStyleSheet で設定します。
<?php
require_once 'PEAR/Info.php';

$info = new PEAR_Info();
$info->setStyleSheet(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'blueskin.css');
$info->display();
?>

2.3. すべてのチャネルのパッケージ情報を表示したいのですが?

デフォルトでは、PEAR_Info が表示するのは pear.php.net チャネルの情報のみです。

この制約を取り除くには、クラスのコンストラクタへのオプションとして 空のチャネルリストを渡します。
<?php
require_once 'PEAR/Info.php';

$pear_dir  = '';
$user_file = '';
$syst_file = '/opt/lampp/etc/pear.conf';
$options   = array('channels' => array() );

$info = new PEAR_Info($pear_dir, $user_file, $syst_file, $options);
$info->display();
?>

注意 特定のチャネルの情報のみを表示させたい場合は、 次のようにチャネルの一覧を指定します。

<?php
$options = array('channels' => array('pear.php.net', 'pear.phpunit.de', '__uri') );
?>

2.4. パッケージがインストールされているかどうかを知りたいのですが?

静的メソッド PEAR_Info::packageInstalled を使用すると、宣言したすべてのチャネルからのパッケージのインストール状況 (バージョンによる絞り込みも可能) を調べることができます。

<?php
require_once 'PEAR/Info.php';

$inst = PEAR_Info::packageInstalled('Role_Web', '1.1.0', 'pearified');
if ($inst === false) {
    echo '"pearified/Role_Web" パッケージがインストールされていません。あるいは'
       . 'インストールされているバージョンが 1.1.0 未満です。';
}
?>