This plugin iterates over a SOAP API and generates a (cake)php file that you can include in your projects that contains all the API's methods & objects as PHP classes. These classes can then be used by this plugin's datasource to talk with the service.
You'll need the XSLTProcessor. On Ubuntu you'd install that as such:
aptitude install php5-xsl
cd app/Plugin
wget https://github.com/ceeram/wsdl/zipball/master -o wsdl.zip
unzip wsdl.zip
mv ceeram-wsdl-* Wsdl && rm -f wsdl.zip
or git clone, from your app dir:
git clone git://github.com/ceeram/wsdl.git Plugin/Wsdl
In app/Config/bootstrap.php add:
CakePlugin::load('Wsdl');
Command line:
cake Wsdl.Wsdl
and follow the instructions
create a config in database.php
like the example:
public $soapservice = array(
'datasource' => 'Wsdl.WsdlSource',
'wsdl' => 'http://domain.com/service.asmx?WSDL',
'lib' => 'ServiceClassMap',
);
Set wsdl and lib to the values you entered and got back in the shell.
Add public $useTable = false;
and public $useDbConfig = 'soapservice';
to your model.
If the web service is protected via Basic authentication, you could supply the credentials as follows:
public $soapservice = array(
'datasource' => 'Wsdl.WsdlSource',
'wsdl' => 'http://domain.com/service.asmx?WSDL',
'lib' => 'ServiceClassMap',
'login' => 'phally',
'password' => 'awesome',
);