| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
パッケージ定義ファイル package.xml の解説
パッケージ定義ファイル package.xml は、 その名が示す通り、ある PEAR パッケージについての情報が記載された 整形式の XML ファイルです。 このセクションでは、パッケージ定義に使用可能な要素について述べ、 自作のパッケージに対して定義ファイルを作成する方法について解説します。 PEAR_PackageFileManager パッケージを使えば、package.xml の作成が容易になります。 通常と同様、次のコマンドで PEAR_PackageFileManager をインストールできます。
$ pear install PEAR_PackageFileManager
使用可能な要素package.xml のトップレベル要素は <package version="1.0"> です。 副要素として使用可能なものは次の通り。
使用可能な文字要素内で使用可能な文字は A-Z および a-z です。 他の文字、たとえば ? など、 を使用するには、エンティティを用います(この場合は é)。 package.xml ファイルを PEAR_PackageFileManager を使って作成する場合には、 インストールされた PEAR をバージョン 1.4.0a2 以降にしておくと良いでしょう。 FileManager が自動的に処理しますので、使用可能な文字について心配しなくてすみます。 package.xml ファイルを手動で作成する場合は、使用するエンティティを 自ら入力する必要があります。 一般的に良く使われるエンティティについては、 http://www.evolt.org/article/A_Simple_Character_Entity_Chart/17/21234/ を参照してください。 必要な文字が無い場合は、 http://www.oasis-open.org/docbook/xmlcharent/0.1/index.shtml や他のリストも参照してください。 検証package.xml の検証には、 libxml2 に同梱されているツール xmllint を使用します。 xmllint --dtdvalid http://pear.php.net/dtd/package-1.0 --noout package.xml パッケージ定義ファイルの作成
基本的な package.xml <?xml version="1.0" encoding="ISO-8859-1" ?> <package version="1.0"> <name>Money_Fast</name> <summary>Make money fast.</summary> <description> This package helps you to make money pretty fast. </description> <license>PHP License</license> <maintainers> <maintainer> <user>foo</user> <name>Joe Foo</name> <email>foo@example.com</email> <role>lead</role> </maintainer> </maintainers> <release> <version>1.0</version> <date>2002-05-27</date> <state>stable</state> <notes> This is the first release. </notes> <filelist> <dir name="/" baseinstalldir="Money"> <file role="php" name="Fast.php" /> </dir> </filelist> </release> </package>
この package.xml は、必要な要素をすべて含んでおり、 テンプレートとして使用できます。 多くの場合、タグ間の文字データを変更するだけで、この例を自作のパッケージに適用できます。
ネストしたディレクトリの例 <?xml version="1.0" encoding="ISO-8859-1" ?> [...] <release> <version>1.0</version> <date>2002-07-23</date> <state>stable</state> <notes> This is the first release. </notes> <filelist> <dir name="/" baseinstalldir="Money"> <file role="php" name="Fast.php" /> <dir name="Calculator"> <file name="Calculator.php" role="php" /> <file name="Currency.php" role="php" /> <file name="Stocks.php" role="php" /> </dir> <dir name="docs"> <file name="README.txt" role="doc" /> <file name="tutorial.txt" role="doc" /> <dir name="examples"> <file name="NASDAQ.php" role="php" /> <file name="DAX.php" role="php" /> </dir> </dir> </dir> </filelist> </release> </package>
この例では、便利な機能が使われています。パッケージ中に 同じタイプのファイルだけを含むディレクトリがある場合、 role 属性を <dir> タグに記述することで、 個別の <file> タグにいちいち記述しないですみます。 このセクションで得た知識に基づいて、 パッケージ定義ファイルを作成可能になったことでしょう。 この話題について、さらに疑問がある場合は、 メーリングリストで 質問してください。 ファイルの役割<file> タグ中の type 属性により ファイルのタイプを指定します。これにより、ファイルがインストール される場所が決まります。
依存性の定義PEAR パッケージのインストールの際に、PEAR パッケージマネージャに インストール先のシステム特性をチェックさせることが可能です。 インストールに当たって必要な(もしくは推奨される)システム特性を <dep> タグで定義します。 依存性を明示した package.xml 次の例は、PHP 4.3.0 以降および XML_Parser 1.0 に対する 依存性を記述する方法を示しています。 <?xml version="1.0" encoding="ISO-8859-1" ?> [...] </release> <deps> <dep type="php" rel="ge" version="4.3.0" /> <dep type="pkg" rel="has" version="1.0">XML_Parser</dep> </deps> </package>
type 属性type 属性には、次が指定できます。
rel 属性rel 属性には、インストール先のシステム特性との関連を指定します。
値を指定しない場合、 has が指定されたことになります。 rel 属性を用いるには PEAR 1.4.0 かそれ以降が必要です。 version 属性version は、 rel 属性で比較されるバージョン値を指定します。 optional 属性optional 属性は、 あるパッケージが絶対に必要なのではなく、 そのパッケージをインストールすることで機能が拡張される場合に使用します。 指定可能な値は、"yes" および "no" です。 optional 属性が指定されない場合は、 そのパッケージが絶対に必要であると看做されます。 optional="yes" を使用した場合、次のような インストールメッセージが出力されます。
$ pear install <package> Optional dependencies: Package `XML_Tree' is recommended to utilize some features. Package `MDB' is recommended to utilize some features.
|
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「解説」をGoogle検索
|