Creating Web ServicesTo create your own Web service, you first need a WSDL description. This is a rather unpleasant task, so the best thing is to take the WSDL description of a Web service that does the same (or at least whose methods have a similar signature). By the way, this is how the WSDL description in Listing 18.1 was developed, too. If you have a look at the description, you see the URL of the Web service: <soap:address location='http://localhost/php/guid-server.php'/> Change this according to your setup. After this is done, the service itself can be written. As you may have guessed, the sample Web service will create a GUID, a Globally Unique Identifier with a prefix provided as a parameter. As you might know, PHP offers this functionality in the uniqid() function. In reality, this Web service is a wrapper for uniqid(), but for this sample this is good enough. Following is the code for the getGuid() function:
function getGuid($prefix) {
return uniqid($prefix);
}
Now you have only three more stepsor lines of codeto do:
These three commands do the trick:
$soap = new SoapServer("guid.wsdl");
$soap->addFunction("getGuid");
$soap->handle();
Listing 18.2 contains the complete code for this example, including disabling the WSDL cache. Listing 18.2. The SOAP Server for the getGuid() Method
<?php
ini_set('soap.wsdl_cache_enabled', 'Off');
function getGuid($prefix) {
return uniqid($prefix);
}
$soap = new SoapServer('guid.wsdl');
$soap->addFunction('getGuid');
$soap->handle();
?>
|