PEAR_PackageFileManager::setOptions

PEAR_PackageFileManager::setOptions() – package.xml の生成オプションを設定する

Synopsis

require_once 'PEAR/PackageFileManager.php';

void|PEAR_Error PEAR_PackageFileManager::setOptions ( array $options = array() )

Description

オプションの配列は以下のような形式になります。

1      $options = array('オプション名' => <オプションの値>);

以下では、説明を簡略化するために オプション名のクォートを省略しています。

設定オプション

  • lang: lang は、表示されるエラーメッセージの言語を制御します。 現在は英語のエラーメッセージしか存在しませんが、 将来は他の言語が追加される可能性があります。 とりうる値: en (デフォルト)

  • packagefile: パッケージファイルの名前。デフォルトは package.xml です。

  • pathtopackagefile: 既存のパッケージファイルを読み込む際のパッケージファイルへのパス。 packagedirectory とは別の場所にある場合に指定します。

  • packagedirectory: パッケージのベースディレクトリへのパス。例えば PEAR_PackageFileManager の場合は、このパスは /path/to/pearcvs/pear/PEAR_PackageFileManager となります。 /path/to/pearcvs は、ハードディスク上のローカルパスです。

  • outputdirectory: 生成された package.xml を配置するパス。 デフォルトではこの値は無視され、package.xml は packagedirectory に作成されます。

  • filelistgenerator: <filelist> セクションで使用するプラグイン。 このリリースでは、file および cvs の 2 種類のジェネレータ プラグインが存在します。詳細は、それぞれのプラグインの ドキュメントを参照ください。

  • usergeneratordir: より高度な設定をしたい方向けです。自分でファイルリスト作成 プラグインを作成した場合に、このオプションで そのプラグインの場所を PEAR_PackageFileManager に教えます。 プラグインの名前が foo の場合、クラス名が PEAR_PackageFileManager_Foo である必要があります。このクラスの 存在する場所は問いません。デフォルトでは、Foo プラグインは PEAR/PackageFileManager/Foo.php に配置されます。 このオプションに /path/to/foo を指定した場合、setOptions は /path/to/foo/Foo.php から PEAR_PackageFileManager_Foo を探します。

  • doctype: package.xml ファイルの DTD。デフォルトは http://pear.php.net/dtd/package-1.0 です。

  • pearcommonclass: インスタンスを作成するクラス名を指定します。デフォルトは PEAR_Common ですが、PEAR_Common のメソッドインターフェースを 実装する独自クラスでこれを上書きすることが可能です。

  • changelogoldtonew: ChangeLog が古いエントリから順にならんでいる場合に true を設定します。 新しいエントリから順にならべたい場合は false を設定します。

  • simpleoutput: 可読性を考慮して、package.xml の出力から md5sum あるいは <provides /> を除く場合に true を設定します。

  • addhiddenfiles: .bashrc のような . で始まる隠しファイル/ディレクトリを追加する場合に true を設定します。これは File ジェネレータでのみ使用されます。 CVS ジェネレータは、その書式が何であるかにかかわらず CVS 内の全ファイルを使用します。

package.xml のシンプルなオプション

  • baseinstalldir: このパッケージをインストールするベースディレクトリ。 パッケージ PEAR_PackageFileManager の場合、これは "PEAR" となります。 パッケージ PEAR の場合、これは "/" となります。

  • license: このリリースのライセンス。何も指定しなかった場合は、デフォルトで PHP ライセンスが指定されます。

  • notes: このリリースに関するリリースノート。

  • changelognotes: Changelog に記録する内容。これはリリースノートより詳しく 記述しなければなりません。デフォルトでは、 PEAR_PackageFileManager は notes オプションの内容をそのまま changelog に適用します。

  • version: このリリースのバージョン番号。バージョン番号の規約を覚えておきましょう。 初期のアルファ版は 0 から 1 までの間を使用し、ベータ版になると 1.0b1 のように最後に b<ベータ番号> を追加します。 バージョン番号の整数部分は旧バージョンとの互換性を表し、 1.1 は 1.0 と互換性があることを意味します。しかし、2.0 には 1.10 との互換性はありません。また、1.10 は 1.1 より後の リリースであることに注意しましょう (それぞれ "いってんじゅう"、 "いってんいち" と考えればよいのです)。 バグ修正版のリリースには 3 つめの数字を使用して 1.0.1、1.0.2 のようにします。

  • package: [オプション] パッケージ名。これは、package.xml を新しく作成する場合や 別のパッケージで使用していた package.xml を雛形として使用する場合に 指定します。

  • summary: [オプション] パッケージの概要。

  • description: [オプション] パッケージの目的についての説明。これら 3 つの オプションは、新しい package.xml を最初から作成する場合には 必須となることに注意しましょう。

警告: オプションに指定するファイルパスは、大文字小文字を区別します。

package.xml の複雑なオプション

  • cleardependencies: バージョン 1.3.0 以降では、これを true に設定すると package.xml 内の既存の依存性をすべて消去します。

  • ignore: ファイル名、ディレクトリ名、あるいは複数ファイルを表す ワイルドカード表現の配列で、package.xml から完全に除外する ファイルを指定します。ワイルドカード文字には、OS の ワイルドカードである * および ? を使用します。 file*foo.php は filefoo.php、fileabrfoo.php および filewho_is_thisfoo.php を除外します。file?foo.php は fileafoo.php を 除外しますが、fileaafoo.php は除外しません。test/ は、 ディレクトリをたどっていく際に test という名前のディレクトリに 遭遇した場合、そのディレクトリおよびサブディレクトリ以下を すべて除外します。*test* は、名前に test が含まれる すべてのファイルおよびディレクトリを除外します。

  • include: ファイル名、ディレクトリ名、あるいは複数ファイルを表す ワイルドカード表現の配列で、一覧に含めるファイルを指定します。 それ以外のすべてのファイルは無視されます。 ワイルドカードの使用方法は ignore と同じです。

  • roles: これは、ファイルの拡張子とロールの関連付けを表す配列です。 ここでデフォルトの振る舞いを指定します。exception や dir_roles を使用することで、デフォルト設定を上書きすることも可能です。 既存の配列に新しいロールを追加するには addRole() を使用します。

  • dir_roles: これは、ディレクトリ名とロールの関連付けを表す配列です。 このオプションにマッチする名前のディレクトリ以下にある すべてのファイルには、指定されたロールが適用されます。 特定のファイルをこの対象から除外するには exceptions を 使用します。ディレクトリは、baseinstalldir からの相対パスである 必要があります。baseinstalldir を指定するには "/" を使用します。

  • exceptions: 特定のファイルに対するロールを指定します。この配列は、 ファイルの完全な名前とロールを "file.ext" => "ロール" のように関連付けます。

  • deps: 依存性の配列。既存の依存性をすべて消去するには、空の配列を渡します。そして addDependency() によって新しい依存性を追加したり既存の依存性を置き換えたりします。

  • maintainers: メンテナの配列。既存のメンテナをすべて消去するには、空の配列を渡します。そして addMaintainer() によって新しいメンテナを追加したり既存のメンテナを置き換えたりします。

  • installexceptions: ファイル名と baseinstalldir の値を関連付けた配列です。これは、 特定のファイルを強制的に別の場所にインストールさせたい場合に 使用します。例えば、特定のスクリプトをパスの通った場所に 配置したい場合などが考えられます。ファイル名は、 packagedirectory からの相対パスである必要があります。

  • platformexceptions: ファイル名とインストール対象プラットフォームを関連付けた配列です。 Unix 限定のファイルや Windows 限定のファイルを指定する場合に 使用します。特別な追加情報が必要ない場合、プラットフォームを 指定する文字列の書式は OS-version-cpu-extra でなければなりません。また、OS は "windows." のように小文字で指定する必要があります。 条件に一致するかどうかは正規表現を使用して調べられますが、 ワイルドカード文字には .* や .? ではなく * および ? を使用します。 hpux/aix/irix/linux はすべて排他的であることに注意しましょう。 「Windows 以外」を選択するには、(*ix|*ux) のように指定します。

  • scriptphaseexceptions: スクリプトとインストール段階を関連付けた配列です。 インストール段階として指定できるのは以下のいずれかです。 pre-install (インストール前)、post-install (インストール後)、 pre-uninstall (アンインストール前)、post-uninstall (アンインストール後)、 pre-build (ビルド前)、post-build (ビルド後)、 pre-setup (セットアップ前)、あるいは post-setup (セットアップ後)。

  • installas: ファイル名と、それが実際にインストールされる際のファイル名を 関連付けた配列です。インストールされるファイルの新しいファイル名を 指定するために、これを使用します。これは、たとえば OS に応じて 違う内容のファイルを同じ名前でインストールする必要がある場合などに platformexceptions と組み合わせて使用します。

  • replacements: インストール時に適用する複雑なテキスト置換と、その対象となるファイルを 関連付けた配列です。書式は以下のようになります。    filename => array('type' => php-const|pear-config|package-info
                         'from' => ファイル内のテキスト
                         'to' => 変数名) type が php-const の場合、'to' は PHP の定数名で なければなりません。type が pear-config の場合、'to' は PEAR_Config クラスの ->get() メソッドでアクセス可能な PEAR 設定変数でなければなりません。type が package-info の場合、'to' はこのファイルのインストール時に使用する package.xml のセクション名でなければなりません。

  • globalreplacements: すべてのファイルに対して適用される置換の一覧。 書式は replacements と同じです (1.4.0 以降で使用可能)。

  • configure_options: PECL パッケージのビルドオプションを指定する配列 (おそらく PECL_Gen を使用したほうがよいのでしょうが、このパッケージ単体でも 同じことができるように、ここで実装されています)。

Parameter

array $options

Throws

PEAR_PACKAGEFILEMANAGER_NOPKGDIR、

PEAR_PACKAGEFILEMANAGER_NOVERSION、

PEAR_PACKAGEFILEMANAGER_NOSTATE、

PEAR_PACKAGEFILEMANAGER_NOBASEDIR、

PEAR_PACKAGEFILEMANAGER_GENERATOR_NOTFOUND_ANYWHERE および

PEAR_PACKAGEFILEMANAGER_GENERATOR_NOTFOUND をスローします。

See

PEAR_PackageFileManager_CVS および

PEAR_PackageFileManager_File も参照ください。

Note

This function can not be called statically.

エラー生成コードを短縮するユーティリティ関数 (Previous) 新しく作成された <release></release> タグを使用して package.xml ファイルを書き出す (Next)
Last updated: Tue, 22 Jul 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.