|
(非推奨) XML-RPC 関数
標準チャネルではどんな XML-RPC 関数が使用可能?
標準 PEAR チャネルがサポートしている XML-RPC 関数の一覧は以下のとおりです。
channel.listAll を実装することも可能ですが、これは
pear.php.net および pecl.php.net によってのみ実装されることを推奨します。
というのは、これは update-channels コマンドによって
公式なチャネルの一覧を取得するために使用されるものだからです。
logintest
xml-rpc 関数 logintest は login コマンドからコールされ、
論理型の TRUE を返します。
package.getDownloadURL
false|struct package.getDownloadURL (
struct packageinfo
, string preferred_state = stable
, (v1.1) string installed_version = false
)
-
false|struct packageinfo
-
以下の形式の配列。
array( 'channel' => チャネル名, 'package' => パッケージ名, ['version' => 取得したい特定のバージョン,] ['state' => 取得したい特定の状態,] )
version および state がともに設定されている場合、
version の内容は無視されます。
-
string preferred_state = stable
-
クライアント側の preferred_state。これは、安定バージョンでない
リリースを除くために使用します。
-
string installed_version = false
-
現在クライアント側にインストールされているパッケージのバージョン。
バージョンを表す文字列か、インストールされていない場合には false
となります。これは、
(version_compare(返す可能性のあるバージョン,
インストールされているバージョン, "<")
で定義される)
古いバージョンを返さないことを確実にするために使用します。
package.getDownloadURL 関数は、2 つあるいは 3 つの要素を持つ
配列を返します。
-
"version" => 返されるリリースのバージョン。
-
"info" => リリースの package.xml の完全な内容。
-
"url" => このリリースをダウンロードする URL。
preferred_state、installed_version および
packageinfo の version/state によって決まる条件を満たす
リリースが存在しない場合は、このインデックスは返されず
そのかわりに最新リリースのバージョンおよび package.xml
が返されます。
url エントリには .tgz や .tar を含めません。例えば
"http://pear.php.net/get/PEAR-1.4.0.tgz" ではなく
"http://pear.php.net/get/PEAR-1.4.0" とします。
package.getDownloadURL のバージョン 1.0 では installed_version
パラメータをサポートしていません。バージョン 1.1 ではサポートしています。
これが、2 つのバージョン間の唯一の違いです。
package.getDepDownloadURL
false|struct package.getDepDownloadURL (
string xsdversion
, struct dependency
, struct parentpackage
, string preferred_state = stable
, (v1.1) string installed_version = false
)
-
string xsdversion
-
'1.0' あるいは '2.0' のいずれかであり、トップレベルの
<package version="X.0"> タグの version 属性に
一致します。これにより、第 2 パラメータをどのように処理するのかを
決定します。
-
struct dependency
-
第 1 パラメータ xsdversion が '1.0' の場合、以下の形式の配列となります。
array( 'name' => パッケージ名, 'type' => 'pkg' - これ以外はエラー, 'rel' => 'has', 'ge', 'le', 'lt', 'le', 'not', 'ne' ['version' => 取得したい特定のバージョン,] )
xsdversion が '2.0' の場合、以下の形式の配列となります。
array( 'name' => パッケージ名, 'channel' => パッケージチャネル - 以下を参照, ['min' => 最小バージョン番号 (この値を含む),] ['max' => 最大バージョン番号 (この値を含む),] ['exclude' => 例外とするバージョン番号 (文字列), あるいは例外とする複数バージョンの配列,] )
channel があなたのチャネルと一致することを常に確かめなければ
なりません。もしチャネルサーバが pear.php.net あるいは
pecl.php.net 以外の場合は、xsdversion='1.0' のリクエストは
すべて拒否しなければなりません。また、xsdversion='2.0'
であっても channel があなたのチャネルと一致しないリクエストも
拒否しなければなりません。
-
struct parentpackage
-
親パッケージの情報で、以下の形式の配列となります。
array( 'channel' => チャネル名, 'package' => パッケージ名, 'version' => 取得したい特定のバージョン, )
-
string preferred_state = stable
-
クライアント側の preferred_state。これは、安定バージョンでない
リリースを除くために使用します。
-
string installed_version = false
-
現在クライアント側にインストールされている依存パッケージのバージョン。
バージョンを表す文字列か、インストールされていない場合には false
となります。これは、
(version_compare(返す可能性のあるバージョン,
インストールされているバージョン, "<")
で定義される)
古いバージョンを返さないことを確実にするために使用します。
package.getDownloadURL と同様、package.getDepDownloadURL は
2 つあるいは 3 つの要素を持つ配列を返します。
-
"version" => 返されるリリースのバージョン。
-
"info" => リリースの package.xml の完全な内容。
-
"url" => このリリースをダウンロードする URL。
preferred_state、installed_version および
packageinfo の version/state によって決まる条件を満たす
リリースが存在しない場合は、このインデックスは返されず
そのかわりに最新リリースのバージョンおよび package.xml
が返されます。
url エントリには .tgz や .tar を含めません。例えば
"http://pear.php.net/get/PEAR-1.4.0.tgz" ではなく
"http://pear.php.net/get/PEAR-1.4.0" とします。
package.getDepDownloadURL のバージョン 1.0 では installed_version
パラメータをサポートしていません。バージョン 1.1 ではサポートしています。
これが、2 つのバージョン間の唯一の違いです。
package.info
false|struct package.info (
string package
, string field = null
)
-
string package
-
情報を取得するパッケージの名前。
-
string field = null
-
情報を取得するフィールドの名前。null の場合、この関数は
以下の要素を持つ配列を返します。
<?php array( 'name' => 'パッケージ名', 'category' => 'カテゴリ名', 'license' => 'パッケージのライセンス', 'summary' => 'パッケージの概要', 'description' => 'パッケージの説明', 'releases' => array( // すべてのリリースをバージョン番号をキーとして格納します '0.1' => array( 'license' => 'リリースのライセンス', 'summary' => 'リリースの概要', 'description' => 'リリースの説明', 'releasedate' => 'リリース日', 'releasenotes' => 'リリースノート', 'state' => 'リリースの安定性', // 以下の項目はオプションです 'deps' => array( array( // 最新リリースの依存性 'type' => 'package.xml <dep> の type', 'relation' => 'package.xml <dep> の rel', 'version' => 'package.xml <dep> の version、あるいは空の文字列', 'name' => 'package.xml <dep> の name', 'optional' => 'yes あるいは no', ), // すべての依存性について続けます ), ), // すべてのリリースについて続けます // これは、リリース日の新しい順に並べなければなりません ), ); ?>
もし第 2 パラメータを指定する場合、それは以下のいずれかでなければなりません。
-
authors - 現在のパッケージメンテナの一覧。形式は以下のとおりです。
<?php array( 'handle1' => array( 'name' => 'メンテナの名前', 'email' => 'maintainer@example.com', 'role' => 'package.xml での role (lead, developer, contributor, helper)', ), 'handle2' => array( 'name' => 'メンテナ 2 の名前', 'email' => 'maintainer2@example.com', 'role' => 'package.xml での role (lead, developer, contributor, helper)', ), // など ); ?>
-
category - このパッケージが所属するカテゴリ。
-
description - 最新リリースの説明。
-
license - 最新リリースのライセンス。
-
notes - 最新リリースのリリースノート。
-
releases - すべてのリリースについての情報。上で説明したような
形式となります。
-
summary - 最新リリースの概要。
package.listAll
struct package.listAll (
bool released_only = true
, bool stable_only = true
)
-
bool released_only
= true
-
TRUE を指定すると、リリースされていないパッケージは
パッケージ一覧で返されません。
-
bool stable_only
= true
-
TRUE を指定すると、安定版リリースでないパッケージは
パッケージ一覧で返されません。
この関数は、上で示した条件を満たすすべてのパッケージを
このような形式の配列で返します。
<?php array( array( 'name' => 'パッケージ名', 'category' => 'カテゴリ名', 'license' => 'リリースのライセンス', 'summary' => 'パッケージの概要', 'description' => 'パッケージの説明', 'stable' => '条件を満たす最新のリリースのバージョン', 'unstable' => '最新の非安定版リリースのバージョン。stable_only の場合は false', 'state' => '条件を満たす最新のリリースのリリース状態', 'deps' => array( // package.info と同様の形式 ) ), // など ); ?>
package.listLatestReleases
struct package.listLatestReleases (
string state = ''
)
-
string state = ''
-
'' の場合は全パッケージの最新リリースが返されます。それ以外の場合は
'snapshot'、'devel'、'alpha'、'beta' あるいは 'stable' の
いずれかを指定する必要があり、この関数は state よりも
安定しているリリースの中で最新のものを返します。
state が 'beta' の場合は、この関数は beta あるいは stable の
リリースの中で最新のものを返します。state が 'devel' の場合は、
この関数は devel、alpha、beta あるいは stable のリリースの中で
最新のものを返します。その他の場合も同様です。
この関数は、パラメータ "state" で指定した条件を満たす
リリースを、すべてのパッケージについて以下の形式の配列で返します。
<?php array( array( 'package' => 'パッケージ名', 'version' => 'リリースのバージョン', 'state' => 'リリースの安定性', 'filesize' => 'ダウンロードする .tgz ファイルの大きさ', ), // etc. ); ?>
package.search
struct package.listAll (
string fragment
, string|bool summary = false
, bool released_only = true
, bool stable_only = true
)
-
string fragment
-
パッケージ名で検索する場合に使用する文字列。
-
string|bool summary
= false
-
false の場合、このパラメータは無視されます。それ以外の場合は、
最初のパラメータにマッチした結果をさらに絞り込むために、
このパラメータを使用してパッケージの概要文を検索します。
-
bool released_only
= true
-
TRUE を指定すると、リリースされていないパッケージは
パッケージ一覧で返されません。
-
bool stable_only
= true
-
TRUE を指定すると、安定版リリースでないパッケージは
パッケージ一覧で返されません。
この関数は、上で示した条件を満たすすべてのパッケージを
このような形式の配列で返します。
<?php array( array( 'name' => 'パッケージ名', 'category' => 'カテゴリ名', 'license' => 'リリースのライセンス', 'summary' => 'パッケージの概要', 'description' => 'パッケージの説明', 'stable' => '条件を満たす最新のリリースのバージョン', 'unstable' => '最新の非安定版リリースのバージョン。stable_only の場合は false', 'state' => '条件を満たす最新のリリースのリリース状態', 'deps' => array( // package.info と同様の形式 ) ), // など ); ?>
|
|
|