| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
<file> のタスク<file> のタスク – 特化したファイルインストールおよびファイル操作
ファイルのインストールをカスタマイズするためにタスクを使用するタスクにより、柔軟でカスタマイズ可能なファイル操作や複雑な インストール処理が可能となります (そのため、"tasks" という 名前になっています)。デフォルトでは、PEAR には 4 つのタスクがあります。 しかし、PEAR/Tasks ディレクトリに既存のタスクと同様の規約に従った ファイルを追加することで、簡単にタスクを追加することが可能です。 このページでは独自のタスクを作成する方法については説明しません。 package.xml 内でタスクを使用する方法についてのみ説明します。 PEAR とともに配布されているのは、3 つの基本的なタスクと 1 つの 複雑なタスクです。基本的なタスクは "replace"、"windowseol" および "unixeol" で、複雑なタスクが "postinstallscript" となります。 "replace" は、package.xml 1.0 の古いタグ <replace> とほぼ同じもので、ファイルの中身についてテキストの置換を行います。 "windowseol" および "unixeol" は、 DOS のバッチファイル (.bat) や Unix のシェルスクリプトなどのファイルの 行末コードを適切に操作します。 "postinstallscript" により、更なるインストール関数を 実行するためのスクリプトを動作させることを選択可能です。 <tasks:replace> - ファイルの内容をカスタマイズするreplace タスクには、3 つの必須属性があります。
package-info 型の置換はパッケージの作成時に行われることに注意しましょう。 そのため、.tgz/.tar リリースの中には置換後のファイルが含められます。 pear-config 型の置換はインストールシステムによってのみ行われ、 インストールの際に実行されます。 <tasks:windowseol> - 行末を \r\n に変換するこのタスクは、Windows 固有のファイル (DOS のバッチファイルなど) を 非 Windows 環境 (たとえば行末を \n に変換してしまう Unix など) で 作成することを可能にします。このタスクは、インストール時だけでなく パッケージ作成時にも実行されることに注意しましょう。そのため、 .tgz/.tar リリースの中には正しい行末のファイルが含まれます。 <tasks:unixeol> - 行末を \n に変換するこのタスクは、Unix 固有のファイル (シェルスクリプトなど) を 非 Unix 環境 (たとえば行末を \r\n に変換してしまう Windows など) で 作成することを可能にします。このタスクは、インストール時だけでなく パッケージ作成時にも実行されることに注意しましょう。そのため、 .tgz/.tar リリースの中には正しい行末のファイルが含まれます。 <tasks:postinstallscript> - 究極のカスタマイズpostinstallscript タスクは、参照しているファイルが インストール後に実行するスクリプトであることを インストーラに通知します。 セキュリティ上の理由により、このスクリプトはユーザによって 手動で実行させなければなりません。そのため、インストーラは このタスクをその他のタスクとは別の特別なコードで管理します。 <postinstallscript> タグでは、インストーラがユーザからの入力を 取得するために使用するパラメータを定義しています。 Web インストーラおよびコマンドラインインストーラの両方をサポートするには、 すべての入力を PEAR で処理し、インストール後スクリプトに所定の形式で 渡す必要があります。あなたがしなければならないことは、 <postinstallscript> タグの内部で使用するパラメータを定義することだけです。 パラメータつきの単純なインストール後スクリプトを表す xml は、 このようになります。
<tasks:postinstallscript> <paramgroup> <id>first</id> <param> <name>test</name> <prompt>Testing Thingy</prompt> <type>string</type> </param> </paramgroup> </tasks:postinstallscript>
この段階では、"string" 型のみがサポートされることに注意しましょう。 その他の型もいずれサポートされる予定です。 次に、より複雑な例を示します。
<tasks:postinstallscript> <paramgroup> <id>first</id> <param> <name>test</name> <prompt>Testing Thingy</prompt> <type>string</type> <default>hi</default> </param> <param> <name>test2</name> <prompt>Testing Thingy 2</prompt> <type>string</type> </param> </paramgroup> <paramgroup> <id>second</id> <name>first::test</name> <conditiontype>preg_match</conditiontype> <value>g+</value> <param> <name>test</name> <prompt>Testing Thingy a</prompt> <type>string</type> <default>hi</default> </param> <param> <name>test2</name> <prompt>Testing Thingy b</prompt> <type>string</type> </param> </paramgroup> </tasks:postinstallscript>
このスクリプトには 2 つのパラメータグループがあります。まず最初の グループが処理された後に、2 番目のグループが処理されます (自然な 流れです)。しかし、ここでは 2 番目のグループは条件付きの パラメータグループとなっています。これは、前のパラメータグループでの ユーザの入力を検証し、それが条件を満たす場合にのみプロンプトを 表示します。条件は、3 つのタグ <tasks:name>、<tasks:conditiontype> および <tasks:value> で指定します。3 つのタグはすべて必須であり、 ひとつでも欠けていると xml の妥当性検証に失敗することに注意しましょう。 <tasks:name> は、前のパラメータグループのパラメータ名です。書式は グループ ID::パラメータ名 のようになります。つまり、上の例の "first::test" は、<tasks:paramgroup> first の <tasks:param> test のことを指します。 <tasks:conditiontype> は、<tasks:name> で指定したパラメータの値を どのように処理するかを定義します。"="、"!=" あるいは "preg_match" のいずれかとなります。
|
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「<file> のタスク」をGoogle検索
|