第 26 章 独自のファイルタスク

目次
package.xml での独自のタスクの使用
PHP での独自タスクの作成

多くの小規模なライブラリのパッケージでは、カスタマイズが必要になることはほとんどありません。 単にインストールすればそれで終わりです。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 タスクを継承して行います。

package.xml での独自のタスクの使用

タスクの定義は、package.xml の tasks 名前空間で行います。現在は、この名前空間は http://pear.php.net/dtd/tasks-1.0 です。 現在の tasks 名前空間は http://pear.php.net/dtd/tasks-1.0.xsd で定義されています。PEAR にバンドルされている独自タスクには、次のようなものがあります。

これらのタスクの xml については、 ここ に説明があります。



大阪 老人ホーム 京都 老人ホーム 兵庫 老人ホーム 和歌山 老人ホーム 滋賀 老人ホーム

奈良 老人ホーム 東京 老人ホーム 神奈川 老人ホーム 千葉 老人ホーム 埼玉 老人ホーム

老人ホーム 断熱塗料 表札