1999/11/21 に産声をあげた Malin Bakken に捧ぐ。
PEAR は、"PHP Extension and Application Repository" を省略したもので、 果物の梨と同じように(「ペア」と)発音します。PEAR の目的は、次のものを提供することにあります。
PHP ユーザを対象とする、オープンソースなコードの構造化されたライブラリ
コード配布およびパッケージ管理のためのシステム
PHP のコード作成に関する標準スタイル (こちらを参照)
PHP 拡張モジュール・コミュニティライブラリ (PHP Extension Community Library: PECL) (詳細はこちらを参照)
PHP/PEAR コミュニティをサポートするための Web サイト、 メーリングリスト、ダウンロードミラー
PEAR は、コミュニティーにより運営されるプロジェクトです。 管理機関は、PEAR Group です。 1999 年に Stig S. Bakken によって創設され、これまでに たくさんの方々 が参加しています。
PEAR に含まれるコードは、「パッケージ」に分けられています。 各パッケージは、個有の開発チームを有する個別のプロジェクトで、 バージョン番号・開発サイクル・ドキュメント・他のパッケージとの関連 (依存性等)などは、それぞれ異なります。 各パッケージは、説明用のファイルを含め、gzip 圧縮された tar アーカイブ として配布されており、PEAR インストーラを用いてローカルシステムに インストールします。
パッケージには、ソースパッケージ(ソースファイルのみを含むパッケージ)と バイナリパッケージ(プラットフォーム依存のバイナリ、 ある場合はソースファイルも含むパッケージ)の 2 種類があります。 C コードを含むソースパッケージをインストールするには、 当然 C の開発環境が必要です。
PEAR では、(パッケージの分類・整理のために)パッケージツリーを定義しています。 パッケージ名の各パートが、ツリーの各「ノード」を表しています。 それぞれのノードは、分類が簡潔に記述されたもので、 パート間はアンダースコアで区切られます。 パッケージ名の例をあげると、"MP3_Id"、"Archive_Tar"、 "HTTP_Post" のようになります。
パッケージによっては、他のパッケージに依存性があり、そのことが明示的に示されているものもあります。 しかし、パッケージとそのパッケージツリーの「親」の間には 依存関係が存在するわけではありません (たとえば、"HTTP_Post" は、通常、"HTTP" とは独立です)。
パッケージツリー最上位にあるいくつかのノードは、「サブレポジトリ」と呼ばれ、 特別な機能を有しています。現在のところ、 PECL、Gtk がそれです。これらに関しては、上記とは別の規則が適用されます。 詳細については、各サブレポジトリに関する説明を参照してください。
さらに、スタイルガイド、すなわち PEAR 標準コーディング規約 (PEAR Coding Standards: PCS) が作成されています。 この規約により、複数の PEAR 開発者による共同開発が容易になり、 品質および移植性の向上、統一感のあるルックアンドフィールの API の提供に役立ちます。
PEAR パッケージはすべて pear.php.net のデータベースに登録された上で、アップロードされています。 オープンソースのサードパーティのパッケージについても登録およびアップロードが可能です。 クローズドソースのパッケージについては、PEAR インストーラによりインストールすることは可能ですが、 PEAR データベースは、オープンソースコード専用です。
pear.php.net は、ヒューマンフレンドリ (HTML) な形式、およびマシンフレンドリ (現在は、XML-RPC) な形式の双方で、PEAR データベースへのインターフェイスを提供しています。 パッケージのダウンロードは、プレーンな HTTP で行われます。 pear.php.net サイトが提供するその他の機能には、以下のものがあります。
ユーザアカウント管理 (CVS サーバに統合)
パッケージ管理
リリース管理
パッケージは、gzip 圧縮された tar ファイルで配布されます。 XML で書かれた定義ファイルが含まれていますが、この定義ファイルには、 パッケージ、ファイルのリストと役割、依存性といった情報が記述されています。
PECL("pickle" と読みます)は、かつては PEAR のサブレポジトリで、 PHP 4 と一緒に配布する C 言語による PHP 拡張モジュールのためのものでした。 もっとはっきり言えば、PHP 本体からどこか別の場所に拡張モジュールを移したいということもあって、 PECL が作成されました。 PECL 拡張モジュールは、PEAR パッケージとして配布・インストールされますが、PEAR ではなく、 コーディング規約は PHP のものに従います。
PHP 本体から PECL に拡張モジュールを移動する手続きは、"pickling" と呼ばれます。
2003年10月より PECL は独立のプロジェクトとなり、PEAR 傘下では無くなりました (インフラは、まだ PEAR より借用しています)。 PECL についての情報は、PECL ホームページ を参照してください。 PEAR からの分離に伴って、その名称が、"PHP Extension Code Library" から、"PHP Extension Community Library" へ変更されました。
Gtk パッケージは、 PHP-GTK プロジェクトの技術を 使用するソフトウエアを提供します。このサブレポジトリにあるコードは、 標準コーディング規約 に従っています。















