SoapClient

Добрый день!

Пытаюсь использовать SOAP (первый раз):




    public function actions()

    {

        return array(

            'quote'=>array(

                'class'=>'CWebServiceAction',

            ),

        );

    }


    public function actionSoap(){


        // ini_set(soap.wsdl_cache_enabled, "1");

        // включает или выключает кэширование WSDL


        //ini_set(soap.wsdl_cache_dir,"/tmp");

        // задает имя директории в которой SOAP-расширение будет хранить кэшированные файлы


        //ini_set(soap.wsdl_cache_ttl,"86400");

        // (время жизни) устанавливает время(в секундах) которое файлы из кэша могут использоваться


        $wsdl = "http://api.a1agregator.ru/api.wsdl";

        $client = new SoapClient($wsdl, array(  'encoding' => 'UTF-8',

                                                'login'  => 'user',

                                                'password' => '****'));


        // Выводит список доступных функций

        $functions = $client->__getFunctions();

        print_r($functions);


        exit;

    }

Выдает ошибку:


include(SoapClient.php) [<ahref='function.include'>function.include</a>]: failed to openstream: No such file or directory




[b]Исходный код[/b]

/home/u61022/youridealbody.ru/www/framework/YiiBase.php(324)




Что я делаю не так?

Я использую класс nuSOAP.

сделал следующее:

  1. Залил класс nuSOAP в /protected/vendors/soap (прямо всю папку)

  2. создал модель /protected/models/soap.php (по моему - не совсем правильно использовать модель, но больше не знаю как реализовать…)




<?php

class soap{

	public static function request($method,$params=array()){

		$soap = new nusoap_client('http://server.ru/SOAP/index.php');

		$err = $soap->getError();

		if ($err)

			return $err;

		else

			return $soap->call($method, $params);

	}

}

?>



  1. в отображении, или ещё где необходимо, пишу так:



$var = soap::request("SoapMethodName",array("param1"=>"value1"));



  1. в config/main.php добавил папку для импорта



'import'=>array(

	'application.models.*'

	,'application.components.*'

	,'application.vendors.soap.*' /*Импорт класса nuSOAP*/

),



  1. Чуть не забыл, во входном файле (index.php), написал строчку, без нее ошибки были (php 5.3)

 date_default_timezone_set('Europe/Moscow'); 

вот вроде и все, пока работает…

p.s. хорошая статья по использованию класса nuSOAP

Спасибо, буду разбираться

Данным вопросом не занимался ранее, но из документации:

http://www.yiiframework.com/doc/api/CWebServiceAction:

Возможно, отсутствует данное расширение?

расширение soap для работы с сервисами встроено в php (только не помню с какой версии)