第 4 章 PEAR2 コーディング規約

目次
導入
規則
PEAR2 で使用するコーディング規約 (バージョン 1)

注意 このドキュメントは、まだ完成していません (たとえば、名前空間の動向はまだ決まっていません)。

導入

PEAR 1.x は、PEAR インストーラ対応のコードを管理するという点で大きな成功を収めました。 新たなインストーラである Pyrus は、これをさらに拡張して PEAR アプリケーション以外も扱えるように設計されており、 単純に zip を展開してインストールするのと同様に動作します。 PEAR2 リポジトリは、PEAR リポジトリよりも幅広いコーディング規約に対応できるようになっています。 このドキュメントでは、here にある既存のルールやコーディング規約からの変更点をすべてとりあげます。 ここにあげた規約とこれまでの規約が矛盾する場合は、新しい標準規約のほうを優先します。 また、この規約は pear.php.net で管理している PEAR パッケージには何の影響も及ぼしません。 あくまでも pear2.php.net で管理することになる PEAR2 パッケージに対してのみ有効となります。

require_once を使用するとパッケージの構造についての制約が多くなり、 PEAR パッケージの可能性を制限してしまいます。たとえば以下のような問題があります。

require_once には、利点もあります。

require_once をなくしてしまうと、その代わりに依存ファイル (パッケージ内のファイルあるいは外部のファイル) を読み込む仕組みが必要になります。 ここでは、ふたつの方法を紹介します。

いずれにせよ、必要なファイル群を読み込むのはエンドユーザ側の仕事となります。 しかし、初心者向けには、PEAR2/Autoload.php を読み込みさえすればすべてうまくいくようになっています。 このファイルは新規パッケージには常にバンドルされていますが、 zip を展開してそのまま使用する形式の場合にのみ展開されます (pyrus は、点順に PEAR2 上の依存ファイルをインストールします。 この中には、必要となるベースファイル PEAR2_Exception および PEAR2_Autoload が含まれます)。
<?php
  require '/full/path/to/PEAR2/Autoload.php';
  // これで、PEAR2 のすべてのパッケージが使えるようになります
?>
PEAR2/Autoload.php は、include_path が正しい値に設定されていない場合に自動的に設定し、 ユーザが定義していなければ自動的に __autoload() を宣言します。