2015-05-26 8 views
6

Ich habe SOAP auf meinem lokalen Server aktiviert. Mein Code ist:Wie verwenden wir den 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); 

Hier ist es erfolgreich ausgeführt wird, wenn ich den Code auf separaten PHP-Datei ausgeführt werden. Aber ich habe diesen Fehler:

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

wenn ich versuche, die Codeform CakePHP Aktion auszuführen.

Bitte schlagen Sie mir vor, wie wir den SoapClient in CakePHP verwenden können.

Antwort

9

Sie in einem anderen Namespace sind, und SoapClient ist in Root-Namespace, so verwendet \SoapClient:

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

Alternativ in der Nähe der Namespace-Deklaration macht eine use Aussage:

namespace App\Controller 
use SoapClient; 

Hinweis : Dies ist kein CakePHP-spezifisches Problem, sondern ein allgemeines Namespace-Problem.

+0

Dank @Mrcode funktioniert es gut. '$ client = new \ SoapClient ('web_url');' Perfekte Antwort. Danke –

+0

Vergessen Sie nicht, die folgende Zeile in php.ini auskommentieren: extension = php_soap.dll – Weles