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 を使用したほうがよいのでしょうが、このパッケージ単体でも
同じことができるように、ここで実装されています)。
Throws
PEAR_PACKAGEFILEMANAGER_NOPKGDIR、
PEAR_PACKAGEFILEMANAGER_NOVERSION、
PEAR_PACKAGEFILEMANAGER_NOSTATE、
PEAR_PACKAGEFILEMANAGER_NOBASEDIR、
PEAR_PACKAGEFILEMANAGER_GENERATOR_NOTFOUND_ANYWHERE および
PEAR_PACKAGEFILEMANAGER_GENERATOR_NOTFOUND をスローします。
Note
This function can not be called
statically.