PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

導入 | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

パッケージ定義ファイル package.xml の手っ取り早い解説

パッケージ定義ファイル package.xml は、 その名前からもわかるように、PEAR パッケージの情報を含む 整形式 XML ファイルです。バージョン 2.0 では、バージョン 1.0 に対して以下のような重要な拡張が施されています。

  • チャネルのサポート

  • バイナリ PECL パッケージのサポート (PEAR 1.4.0 では完全には実装されていません)

  • より具体的な依存性解決

既存のバージョン 1.0 の package.xml については、以下のコマンドにより ほぼ等価なパッケージを作成することが可能です。

     
$ pear convert
     
    

PEAR_PackageFileManager は、バージョン 1.6.0 以降で PEAR_PackageFileManager2 クラスによって package.xml 2.0 をサポートしていることに注意しましょう。

PECL 開発者向け: PECL 固有の機能についての詳細な情報は こちらをご覧ください

package.xml バージョン 2.0 は、PEAR 1.4 以降でサポートされています。 2007 年 4 月現在、世の中の 99.8% 以上の環境で PEAR 1.4 以降が利用されています。 したがって、もはや後方互換性を気にして v1.0 をサポートする必要はありません。

すべての要素を含むファイルの例

<?xml version="1.0"?>
<package version="2.0" xmlns="http://pear.php.net/dtd/package-2.0"
    xmlns:tasks="http://pear.php.net/dtd/tasks-1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
http://pear.php.net/dtd/tasks-1.0.xsd
http://pear.php.net/dtd/package-2.0
http://pear.php.net/dtd/package-2.0.xsd">
 <name>PEAR</name>
<channel>
pear.php.net</channel>
<extends>
OldPackage</extends>
 <summary>1 行での概要説明</summary>
 <description>長めの説明文。
 この文は、リリース間で変わることはあまりありません。リリースノートには
 "notes" タグを使用します。
 </description>
<lead>
<name>Greg Beaver</name>
  <user>cellog</user>
  <email>cellog@php.net</email>
  <active>yes</active>
 </lead>
 <date>2005-02-26</date>
 <time>20:30:13</time> <-- 注意: <time> はオプションです -->
<version>
<release>1.4.0a2</release>
  <api>1.4.0</api>
 </version>
<stability>
<release>alpha</release>
  <api>alpha</api>
 </stability>
<license uri="
http://www.php.net/license/">PHP License</license>
 <notes>
 リリースノートをここに記述します。
 複数行にまたがることも可能です。
 </notes>
<contents> <dir name="/">
<dir name="PEAR">
    <dir name="ChannelFile">
<file name="Parser.php" role="php" />
</dir> <!-- /PEAR/ChannelFile -->
    <file name="Dependency2.php" role="php">
     <tasks:replace from="@PEAR-VER@" to="version" type="package-info"/>
    </file>
   </dir> <!-- /PEAR -->
   <dir name="scripts" baseinstalldir="/">
    <file name="pear.bat" role="script">
<tasks:replace from="@bin_dir@" to="bin_dir" type="pear-config" />
<tasks:replace from="@php_bin@" to="php_bin" type="pear-config" />
     <tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
<tasks:windowseol/>
</file>
    <file name="pecl.bat" role="script">
     <tasks:replace from="@bin_dir@" to="bin_dir" type="pear-config" />
     <tasks:replace from="@php_bin@" to="php_bin" type="pear-config" />
     <tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
     <tasks:windowseol/>
    </file>
    <file name="pear.sh" role="script">
     <tasks:replace from="@php_bin@" to="php_bin" type="pear-config" />
     <tasks:replace from="@php_dir@" to="php_dir" type="pear-config" />
     <tasks:replace from="@pear_version@" to="version" type="package-info" />
     <tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
<tasks:unixeol/>
</file>
    <file name="pecl.sh" role="script">
     <tasks:replace from="@php_bin@" to="php_bin" type="pear-config" />
     <tasks:replace from="@php_dir@" to="php_dir" type="pear-config" />
     <tasks:replace from="@pear_version@" to="version" type="package-info" />
     <tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
     <tasks:unixeol/>
    </file>
    <file name="pearcmd.php" role="php">
     <tasks:replace from="@php_bin@" to="php_bin" type="pear-config" />
     <tasks:replace from="@php_dir@" to="php_dir" type="pear-config" />
     <tasks:replace from="@pear_version@" to="version" type="package-info" />
     <tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
    </file>
    <file name="peclcmd.php" role="php">
     <tasks:replace from="@php_bin@" to="php_bin" type="pear-config" />
     <tasks:replace from="@php_dir@" to="php_dir" type="pear-config" />
     <tasks:replace from="@pear_version@" to="version" type="package-info" />
     <tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
     <tasks:footask/>
    </file>
   </dir> <!-- /scripts -->
   <file name="package.dtd" role="data" />
   <file name="postinstall.php" role="php">
<tasks:postinstallscript/>
</file>
   <file name="template.spec" role="foo" />
  </dir> <!-- / -->
 </contents>
<compatible>
<name>FooPackage</name>
  <channel>pear.php.net</channel>
  <min>1.3.0</min>
  <max>1.5.0</max>
 </compatible>
<dependencies>
<required>
<php>
<min>4.2</min>
    <max>6.0.0</max>
   </php>
<pearinstaller>
<min>1.4.0dev13</min>
   </pearinstaller>
<package>
<name>Archive_Tar</name>
    <channel>pear.php.net</channel>
    <min>1.1</min>
    <recommended>1.2</recommended>
   </package>
<package>
<name>Foo</name>
    <uri>http://www.example.com/Foo-1.2.0.tgz</uri>
   </package>
<extension>
<name>xml</name>
   </extension>
<os>
<name>windows</name>
    <conflicts/>
   </os>
<arch>
<pattern>*-i?86-*-*</pattern>
   </arch>
  </required>
<optional>
<package>
    <name>PEAR_Frontend_Web</name>
    <channel>pear.php.net</channel>
    <min>0.5.0</min>
   </package>
   <package>
    <name>PEAR_Frontend_Gtk</name>
    <channel>pear.php.net</channel>
    <min>0.4.0</min>
   </package>
  </optional>
  <group name="remoteinstall" hint="パッケージをリモートの ftp サーバにインストールする機能を追加します">
   <package>
    <name>Net_FTP</name>
    <channel>pear.php.net</channel>
    <min>1.3.0RC1</min>
    <recommended>1.3.0</recommended>
   </package>
  </group>
  <group name="webinstaller" hint="Web ベースの PEAR インストーラ">
   <package>
    <name>PEAR_Frontend_Web</name>
    <channel>pear.php.net</channel>
    <min>0.5.0</min>
   </package>
  </group>
  <group name="gtkinstaller" hint="PHP-GTK ベースの PEAR インストーラ">
   <package>
    <name>PEAR_Frontend_Gtk</name>
    <channel>pear.php.net</channel>
    <min>0.4.0</min>
   </package>
  </group>
 </dependencies>
<usesrole>
<role>foo</role>
  <package>Foo</package>
  <channel>pear.example.com</channel>
 </usesrole>
<usestask>
<task>footask</task>
  <package>Footask</package>
  <channel>pear.example.com</channel>
 </usestask>
<phprelease>
<installconditions>
   <os>
    <name>windows</name>
   </os>
  </installconditions>
  <filelist>
   <install as="pear.bat" name="scripts/pear.bat" />
   <install as="pecl.bat" name="scripts/pecl.bat" />
   <install as="pearcmd.php" name="scripts/pearcmd.php" />
   <install as="peclcmd.php" name="scripts/peclcmd.php" />
   <ignore name="scripts/pear.sh" />
   <ignore name="scripts/pecl.sh" />
  </filelist>
 </phprelease>
 <phprelease>
  <filelist>
   <install as="pear" name="scripts/pear.sh" />
   <install as="pecl" name="scripts/pecl.sh" />
   <install as="pearcmd.php" name="scripts/pearcmd.php" />
   <install as="peclcmd.php" name="scripts/peclcmd.php" />
   <ignore name="scripts/pear.bat" />
   <ignore name="scripts/pecl.bat" />
  </filelist>
 </phprelease>
 <changelog>
  <release>
   <version>
    <release>1.3.5</release>
    <api>1.3.0</api>
   </version>
   <stability>
    <release>stable</release>
    <api>stable</api>
   </stability>
   <date>2005-02-26</date>
   <license uri="http://www.php.net/license/3_0.txt">PHP License</license>
   <notes>
 * fix Bug #3505: pecl can't install PDO
 * enhance pear run-tests dramatically
 * fix Bug #3506: pear install should export the pear version into the environment

   </notes>
  </release>
  <release>
   <version>
    <release>1.4.0a1</release>
    <api>1.4.0</api>
   </version>
   <stability>
    <release>alpha</release>
    <api>alpha</api>
   </stability>
   <date>2005-02-26</date>
   <license uri="http://www.php.net/license/3_0.txt">PHP License</license>
   <notes>
  This is a major milestone release for PEAR.  In addition to several killer features,
  every single element of PEAR has a regression test, and so stability is much higher
  than any previous PEAR release, even with the alpha label.

  New features in a nutshell:
  * full support for channels
  * pre-download dependency validation
  * new package.xml 2.0 format allows tremendous flexibility while maintaining BC
  * support for optional dependency groups and limited support for sub-packaging
  * robust dependency support
  * full dependency validation on uninstall
  * support for binary PECL packages
  * remote install for hosts with only ftp access - no more problems with
    restricted host installation
  * full support for mirroring
  * support for bundling several packages into a single tarball
  * support for static dependencies on a url-based package

  Specific changes from 1.3.5:
  * Implement request #1789: SSL support for xml-rpc and download
  * Everything above here that you just read
   </notes>
  </release>
 </changelog>
</package>

忘却曲線を使ってこの知識を確実に記憶に残す

フォーラムで「導入」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | 導入」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: