$Date: 2008-10-09 15:17:31 $
多くの小規模なライブラリのパッケージでは、カスタマイズが必要になることはほとんどありません。 単にインストールすればそれで終わりです。package.xml 1.0 は、このような処理には適しています。 パッケージの規模が大きくなり複雑になってくると、ファイルの内容に少々手をいれたり データベースなどの外部のコンポーネントを変更したりする必要が出てきます。
package.xml 1.0 では、隠し機能として <replace> タグでファイルの内容を変更することができました。 たとえばこのようになります。
<file name="blah.php" role="php"> <replace from="@token@" to="version" type="package-info"/> <replace from="@anothertoken@" to="php_dir" type="pear-config"/> </file>
上の例は、インストール時に blah.php ファイルを探し、
str_replace()
を使用してそのファイル内の文字列 @token@
をパッケージのバージョン番号に置き換えます。そして、文字列
@anothertoken@
を、
php_dir の設定値に置き換えます。
これは強力な機能ではありますが、package.xml バージョン 1.0 で使用可能なカスタマイズ用タグは、この replace タグだけです。 package.xml バージョン 2.0 を開発するにあたって、 "task" という拡張機能を追加することにしました。これは Phing のような独創的な作品に影響を受けたものです。
タスクの定義は、xml の <file> タグの子要素で行います。 タスクの実装は、PEAR_Task_Common タスクを継承して行います。