I have enabled SOAP in my local server. My code is:
ini_set('soap.wsdl_cache_enabled', '0');
ini_set('soap.wsdl_cache_ttl', '0');
$client = new SoapClient('web_url');
$session = $client->login('username', 'pwd');
$result = $client->call($session, 'function_name', '<id>');
print_r($result);
Here it's executed successfully when I run the code on separate php file. But I got this error:
Error: Class 'App\Controller\SoapClient' not found
when I try to run the code form CakePHP action.
Please suggest me how to we use the SoapClient in CakePHP.
A SOAP client formulates a request for a service. This involves creating a conforming XML document, either explicitly or using Oracle SOAP client API. A SOAP client sends the XML document to a SOAP server. This SOAP request is posted using HTTP or HTTPS to a SOAP Request Handler running as a servlet on a Web server.
Description ¶ This is a low level API function that is used to make a SOAP call. Usually, in WSDL mode, SOAP functions can be called as methods of the SoapClient object. This method is useful in non-WSDL mode when soapaction is unknown, uri differs from the default or when sending and/or receiving SOAP Headers.
You're in a different namespace, and SoapClient
is in the root namespace, so use \SoapClient
:
$client = new \SoapClient('web_url');
Alternatively, near the namespace declaration make a use
statement:
namespace App\Controller
use SoapClient;
Note: this isn't a CakePHP specific problem, it's a general namespace issue.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With