Request_Soap クラス

Request_Soap クラスは PHP の SoapClient 拡張を介して SOAP リクエストを処理するためにあります。 PHP のインストールには、 "--enable-soap" のオプションをつける必要があります。 phpinfo() でそれを確認する事ができます。

インスタンスの作成

Request クラスを使用してこのクラスのインスタンスの生成ができます。

// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// これは、オブジェクトを作成するだけで、リクエストを実行するわけではない事に注意!

set_params($params)

set_params メソッドは、SOAP リクエストを呼び出し時に渡すパラメータをセットすることができます。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$params 必須 リクエストに使用するパラメータの配列。
返り値 Request_Soap 、メソッドチェーン用
// Request_Soap objectを作成する。
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// いくつかのパラメータを設定
$soap->set_params(array('userid' => 12, 'data' => $payload));

定義が必要なパラメータの形式は、呼ばれている SOAP サービス に依存することに注意してください。 例えば、それらが配列で内包されていると期待する人もいるでしょう。 SOAP リクエストドライバはパラメータを set_params で使った形式でサービスに渡します。ですから、それが正しいかを確認してください。

set_option($option, $value)

set_option メソッドは、リクエストへ渡される SoapClient オプションを定義することができます。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$option 必須 セットしたい SoapClient オプション。
$value 必須 このオプションへセットする値。
返り値 Request_Soap 、メソッドチェーン用
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// リクエストで使われるユーザ名をセット
$soap->set_option('login', $username);

set_options(array $options)

set_options メソッドは、リクエストへ渡される複数の SoapClient オプションを定義することができます。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$options 必須 セットしたい SoapClient オプションと値の配列。
返り値 Request_Soap 、メソッドチェーン用
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// リクエストで使われるユーザ名とパスワードをセット
$soap->set_options(array(
	'login' => $username,
	'password' => $password,
	)
);

add_param($param, $value = null)

add_param メソッドは、すでに定義されたものに 1 つ以上のパラメータを追加することができます。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$param 必須 セットしたいパラメータの名前、またはパラメータと値の配列。
$value
null
定義したい値。$param が文字列値の場合のみ使われる。
返り値 Request_Soap 、メソッドチェーン用
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// いくつかパラメータを追加
$soap->add_param(array('userid' => 12, 'data' => $payload));

// または、1 つを追加
$soap->add_param('data', $payload);

set_header($header, $content = null)

set_header メソッドは、リクエストの一部として HTTP リクエストヘッダをセットすることができます。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$header 必須 HTTP ヘッダエントリの名前。
$content
null
セットしたいヘッダの値。
返り値 Request_Soap 、メソッドチェーン用
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// バックエンドサーバに認証トークンを渡す
$soap->set_header('auth-token', 'WV4YaeV8QeWVVVOE');

"名前: 値" の形式でないヘッダをセットする必要がある場合、値は $header の中で渡し、$content には何も渡さないこと。

get_headers()

get_headers メソッドは、現在定義されているすべての HTTP リクエストヘッダを取得することができます。

静的 いいえ
パラメータ なし。
返り値 Array 、全てのヘッダセット。
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// バックエンドサーバに認証トークンを渡す
$soap->set_header('auth-token', 'WV4YaeV8QeWVVVOE');

// array('auth-token:WV4YaeV8QeWVVVOE') を返す
$headers = $soap->get_headers();

set_auto_format($auto_format)

set_auto_format メソッドは、自動整形をオンまたはオフにすることができます。 1.7.2 以降、これはデフォルトでオフになっており、オフ時には cURL のレスポンスを自分で解析する必要があります。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$auto_format 必須 返ってきたレスポンスを配列に変換したいならば True 、受け取ったそのままにアクセスしたいならば false 。
返り値 Request_Soap 、メソッドチェーン用
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// 配列で返り値が欲しい
$soap->set_auto_format(true);

自動整形は次の MIME タイプをサポートしています:

  • application/xml
  • text/xml
  • application/json
  • text/json
  • text/csv
  • application/csv
  • application/vnd.php.serialized
有効になっており応答がこれらのタイプのいずれかにあるとき、それが自動的に処理され、 PHP の配列形式でコントローラに返されます。

これはデータのソースが信頼できるか、そして / または、受信した入力を検証している場合にのみ有効にします。 JSON とシリアル化された配列はオブジェクトを含めることができます。それらのコンストラクタは自動整形中のインスタンス化時に実行されるので、 おそらくサーバを損なう、意図しないコードが実行される可能性があります!

execute(array $additional_params = array())

execute メソッドは、定義された SOAP リクエストを実行します。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$additional_params
array()
リクエストに渡したい追加のパラメータ。
返り値 Request_Soap 、メソッドチェーン用
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// リクエストを実行
$result = $soap->execute();

set_response($body, $status, $mime = null, $headers = array())

set_response メソッドは、リクエストから受け取ったレスポンスをセットします。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$body 必須 レスポンスボディとしてセットされるデータ。
$status 必須 レスポンスを作成した HTTP ステータス。
$mime
null
データの mime タイプ。これは auto_format でボディを配列へ変換するために使われます。
$headers
null
セットしたい HTTP レスポンスヘッダ。
返り値 Response 、作成された response オブジェクト。
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// カスタムレスポンスを作成 (SOAP レスポンスは常に XML です)
$soap->set_response($body, $this->response_info('http_code', 200), 'xml', array('auth-token' => 'WV4YaeV8QeWVVVOE'));

通常は、このメソッドを使用すべきではありません。リクエストがリクエストのレスポンスオブジェクトを準備するために実行された後、このメソッドが使用されます。

response()

response メソッドは、現在のリクエストレスポンスを返します。

静的 いいえ
パラメータ なし。
返り値 Response 、作成された response オブジェクト。
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// いくつかのパラメータとオプションがセットされているとして、実行する
$soap->execute();

// 結果の Response オブジェクトを取得
$result = $soap->response();

response_info($key = null, $default = null)

response_info メソッドは、SOAP レスポンスの値、または全てのレスポンスの値を取得することができます。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$key
null
取得したいレスポンスの値を指定します。全ての値を取得したい場合は指定しないでください。
$default
null
リクエストした値が存在しない場合に返される値。
返り値 Mixed 、リクエストした値のデータタイプによる。
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// いくつかのパラメータとオプションがセットされているとして、実行する
$soap->execute();

// レスポンスヘッダから実行した soap action を取得
$size = $soap->response_info('SOAPAction', false);

このメソッドは、レスポンスの HTTP ヘッダーへのアクセスを許可します。

set_function($function)

set_function メソッドは、SoapClient 上で実行させる関数をセットします。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$function 必須 呼び出したい SOAP 関数の名前。
返り値 Request_Soap 、メソッドチェーン用
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// いくつかのユーザデータを取得するために、 soapcall 関数をセットする
$soap->set_function('GetUserInfo');

get_functions()

get_functions メソッドは、WSDL に定義されている関数のリストを返します。

静的 いいえ
パラメータ なし。
返り値 存在する SOAP 関数の配列
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// SOAP 関数リストを取得
$functions = $soap->get_functions();

このメソッドは、SoapClient が WDSL モードで動作している必要があります。

get_request_xml()

get_request_xml メソッドは、直近のリクエスト XML を返します。

静的 いいえ
パラメータ なし。
返り値 String 、直近の XML リクエスト
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// 何かのコードをここに...

// 直近の XML リクエストを取得
$request = $soap->get_request_xml();

このメソッドは、'trace' オプションが有効になっている必要があります。

get_request_headers()

get_request_headers メソッドは、直近のリクエストのヘッダを返します。

静的 いいえ
パラメータ なし。
返り値 String 、直近のリクエストの SOAP ヘッダ。改行が含まれている可能性があります。
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// 何かのコードをここに...

// 直近の XML リクエストのヘッダを取得
$headers = $soap->get_request_headers();

このメソッドは、'trace' オプションが有効になっている必要があります。

get_response_xml()

get_response_xml メソッドは、直近のレスポンス XML を返します。

静的 いいえ
パラメータ なし。
返り値 String 、直近の XML レスポンス
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// 何かのコードをここに...

// 直近の XML レスポンスを取得
$response = $soap->get_response_xml();

このメソッドは、'trace' オプションが有効になっている必要があります。

get_response_headers()

get_response_headers メソッドは、直近のレスポンスのヘッダを返します。

静的 いいえ
パラメータ なし。
返り値 String 、直近のレスポンスの SOAP ヘッダ。改行が含まれている可能性があります。
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// 何かのコードをここに...

// 直近のレスポンスのヘッダを取得
$response = $soap->get_response_headers();

このメソッドは、'trace' オプションが有効になっている必要があります。

get_types()

get_types メソッドは、サポートされている型のリストを返します。

静的 いいえ
パラメータ なし。
返り値 SOAP 型の配列、全ての構造と型の詳細。
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// このウェブサービスの WSDL に記述されている型のリストを取得
$types = $soap->get_types();

このメソッドは、SoapClient が WDSL モードで動作している必要があります。

set_cookie メソッドは、後のリクエストのためにリクエスト cookie をセットします。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$name 必須 cookie の名前。
$value
null
cookie の値。指定がない場合、cookie は削除されます。
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// HTTP リクエストヘッダに cookie として認証トークンをセット
$soap->set_cookie('auth-token', 'WV4YaeV8QeWVVVOE');

set_location($location)

set_location メソッドは、エンドポイントの場所を変更することができます。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$location 必須 新しいエンドポイント URL 。
// Request_Soap オブジェクトを作成
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');

// リクエストのエンドポイントを変更
$soap->set_location('http://moresoap.example.org/api/v2/other/info');