Request_Soap Class
The Request_Soap class is intended to process SOAP requests through PHP's SoapClient extension.
Your PHP installation must be compiled with "--enable-soap". You can check the output of phpinfo() to see if this is the case.
Creating an instance
You can forge an instance of this class through the Request class:
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// note that this only creates the object, it does not execute the request!
set_params($params)
The set_params method allows you to set parameters to pass on the SOAP request call.
| Static |
No |
| Parameters |
| Param |
Default |
Description |
| $params |
required |
Array of parameters for the request. |
|
| Returns |
Request_Soap, for chaining |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// set some parameters
$soap->set_params(array('userid' => 12, 'data' => $payload));
|
set_option($option, $value)
The set_option method allows you to define a SoapClient option to be passed to the request.
| Static |
No |
| Parameters |
| Param |
Default |
Description |
| $option |
required |
SoapClient option to set. |
| $value |
required |
Value to set this option to. |
|
| Returns |
Request_Soap, for chaining |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// set the username to be used in the request
$soap->set_option('login', $username);
|
set_options(array $options)
The set_options method allows you to define multiple SoapClient options to be passed to the request.
| Static |
No |
| Parameters |
| Param |
Default |
Description |
| $options |
required |
Array of SoapClient options and values to set. |
|
| Returns |
Request_Soap, for chaining |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// set a username and password to be used in the request
$soap->set_options(array(
'login' => $username,
'password' => $password,
)
);
|
add_param($param, $value = null)
The add_param method allows you to add one or more parameters to the ones already defined.
| Static |
No |
| Parameters |
| Param |
Default |
Description |
| $param |
required |
Name of the parameter to set, or an array of parameters and values. |
| $value |
null
|
Value to be defined. Only used when $param is a string value. |
|
| Returns |
Request_Soap, for chaining |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// add some parameters
$soap->add_param(array('userid' => 12, 'data' => $payload));
// or add a single one
$soap->add_param('data' => $payload);
|
The set_header method allows you to set a HTTP request header as part of the request.
| Static |
No |
| Parameters |
| Param |
Default |
Description |
| $header |
required |
The name of the HTTP header entry. |
| $content |
null
|
The header value to be set. |
|
| Returns |
Request_Soap, for chaining |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// pass an authentication token to the backend server
$soap->set_header('auth-token', 'WV4YaeV8QeWVVVOE');
|
If you need to set a header that is not in the form "Name: Value", pass the value in $header, and do not pass any content.
The get_headers method allows you to retrieve all currently defined HTTP request headers.
| Static |
No |
| Parameters |
None.
|
| Returns |
Array, all headers set. |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// pass an authentication token to the backend server
$soap->set_header('auth-token', 'WV4YaeV8QeWVVVOE');
// returns array('auth-token:WV4YaeV8QeWVVVOE')
$headers = $soap->get_headers();
|
The set_auto_format method allows you to switch auto formatting on or off.
| Static |
No |
| Parameters |
| Param |
Default |
Description |
| $auto_format |
required |
True if you want the returned response to be converted into an array, false if you want to access it as it is received. |
|
| Returns |
Request_Soap, for chaining |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// we want an array returned
$soap->set_auto_format(true);
|
execute(array $additional_params = array())
The execute method executes the defined SOAP request.
| Static |
No |
| Parameters |
| Param |
Default |
Description |
| $additional_params |
array()
|
Any additional parameters you want to pass to the request. |
|
| Returns |
Request_Soap, for chaining |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// execute the request
$result = $soap->execute();
|
set_response($body, $status, $mime = null, $headers = array())
The set_response method sets the response received from the request.
| Static |
No |
| Parameters |
| Param |
Default |
Description |
| $body |
required |
The data to be set as the response body. |
| $status |
required |
The HTTP status of the created response. |
| $mime |
null
|
The mime type the data is in. This is used with auto_format to convert the body into an array. |
| $headers |
null
|
Any HTTP response headers you want to set. |
|
| Returns |
Response, the created response object. |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// create a custom response (SOAP responses should always be in XML)
$soap->set_response($body, $this->response_info('http_code', 200), 'xml', array('auth-token' => 'WV4YaeV8QeWVVVOE'));
|
Normally you should not use this method. It is used after the request is executed to prepare the requests response object.
response()
The response method returns the current request response.
| Static |
No |
| Parameters |
None.
|
| Returns |
Response, the created response object. |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// assume some parameters and options were set, and execute
$soap->execute();
// fetch the resulting Response object
$result = $soap->response();
|
response_info($key = null, $default = null)
The response_info method allows you to retrieve a cURL response value, or all response values.
| Static |
No |
| Parameters |
| Param |
Default |
Description |
| $key |
null
|
Specific response value to retrieve. Don't specify it when you want to retrieve all values. |
| $default |
null
|
Value to be returned when the requested value does not exist. |
|
| Returns |
Mixed, depending on the data type of the requested value. |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// assume some parameters and options were set, and execute
$soap->execute();
// get the soap action executed from the response header
$size = $soap->response_info('SOAPAction', false);
|
This method allows access to the HTTP headers of the response.
set_function($function)
The set_function method sets the function to execute on the SoapClient.
| Static |
No |
| Parameters |
| Param |
Default |
Description |
| $function |
required |
The name of the SOAP function to call. |
|
| Returns |
Request_Soap, for chaining |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// set the soapcall function to fetch some user data
$soap->set_function('GetUserInfo');
|
get_functions()
The get_functions method returns the list of functions defined in the WSDL.
| Static |
No |
| Parameters |
None.
|
| Returns |
Array of available SOAP functions |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// retrieve the SOAP function list
$functions = $soap->get_functions();
|
This method requires the SoapClient to work in WDSL mode.
get_request_xml()
The get_request_xml method returns the last request XML.
| Static |
No |
| Parameters |
None.
|
| Returns |
String, The last XML request |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// some code here...
// retrieve the last XML request
$request = $soap->get_request_xml();
|
This method requires the 'trace' option to be enabled.
The get_request_headers method returns the headers of the last request.
| Static |
No |
| Parameters |
None.
|
| Returns |
String, the SOAP headers from the last request. May contain newlines. |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// some code here...
// retrieve the headers of the last request
$headers = $soap->get_request_headers();
|
This method requires the 'trace' option to be enabled.
get_response_xml()
The get_response_xml method returns the last response XML.
| Static |
No |
| Parameters |
None.
|
| Returns |
String, The last XML response |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// some code here...
// retrieve the last XML response
$response = $soap->get_response_xml();
|
This method requires the 'trace' option to be enabled.
The get_response_headers method returns the headers of the last response.
| Static |
No |
| Parameters |
None.
|
| Returns |
String, the SOAP headers from the last response. May contain newlines. |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// some code here...
// retrieve the headers of the last response
$response = $soap->get_response_headers();
|
This method requires the 'trace' option to be enabled.
get_types()
The get_types method returns the list of supported get types.
| Static |
No |
| Parameters |
None.
|
| Returns |
array of SOAP types, detailing all structures and types. |
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// get the list of types described in the WSDL for this web service
$types = $soap->get_types();
|
This method requires the SoapClient to work in WDSL mode.
set_cookie($name, $value = null)
The set_cookie method sets the request cookie for subsequent requests.
| Static |
No |
| Parameters |
| Param |
Default |
Description |
| $name |
required |
The name of the cookie. |
| $value |
null
|
The value of the cookie. If not specified, the cookie will be deleted. |
|
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// set an auth token as a cookie in the HTTP request header
$soap->set_cookie('auth-token', 'WV4YaeV8QeWVVVOE');
|
set_location($location)
The set_location method allows you to change the endpoint location.
| Static |
No |
| Parameters |
| Param |
Default |
Description |
| $location |
required |
The new endpoint URL. |
|
| Example |
// create a Request_Soap object
$soap = Request::forge('http://soap.example.org/api/v1/this/info', 'soap');
// change the endpoint of the request
$soap->set_location('http://moresoap.example.org/api/v2/other/info');
|