2015-05-26 20 views
6

Ho abilitato SOAP nel mio server locale. Il mio codice è:Come si usa SoapClient in Cakephp ...?

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); 

Qui è eseguito con successo quando si esegue il codice su file php separato. Ma ho ricevuto questo errore:

Error: Class 'App\Controller\SoapClient' not found

quando si tenta di eseguire il codice di azione CakePHP.

Per favore suggeriscimi come utilizzare SoapClient in CakePHP.

risposta

9

Sei in uno spazio dei nomi diverso, e SoapClient è nello spazio dei nomi radice, in modo da utilizzare \SoapClient:

$client = new \SoapClient('web_url'); 

In alternativa, nei pressi della dichiarazione di namespace fare una dichiarazione use:

namespace App\Controller 
use SoapClient; 

Nota : questo non è un problema specifico di CakePHP, è un problema di namespace generale.

+0

Grazie a @Mrcode funziona bene. '$ client = new \ SoapClient ('web_url');' Risposta perfetta. Grazie –

+0

Non dimenticare di decommentare la riga seguente in php.ini: extension = php_soap.dll – Weles