Spec-Zone.ru › Yii 1.1

CWebServiceAction

Пакет system.web.services
Наследование class CWebServiceAction » CAction » CComponent
Реализует IAction
С версии 1.0
Исходный код framework/web/services/CWebServiceAction.php
CWebServiceAction реализует действие, предоставляющее веб-сервисы.

CWebServiceAction служит для двух целей. С одной стороны, он отображает содержимое WSDL, определяющее API веб-сервиса. С другой стороны, он вызывает затребованный API веб-сервиса. GET-параметр с именем ws используется для различения этих двух аспектов: наличие GET-параметра указывает на выполнение последнего действия.

По умолчанию CWebServiceAction будет использовать текущий контроллер в качестве поставщика веб-сервиса. См. CWsdlGenerator, чтобы узнать, как объявлять методы, которые можно вызывать удаленно.

Обратите внимание, что для этого действия требуется расширение PHP SOAP.

Свойства общедоступного доступа

Свойство Тип Описание Определено в
classMap массив список PHP-классов, объявленных как сложные типы в WSDL. CWebServiceAction
controller CController контроллер, которому принадлежит это действие. CAction
id строка идентификатор этого действия CAction
provider смешанный объект или имя класса поставщика веб-сервиса. CWebServiceAction
service CWebService Возвращает экземпляр веб-сервиса, который используется в данный момент. CWebServiceAction
serviceOptions массив начальные значения свойств для объекта CWebService. CWebServiceAction
serviceUrl строка URL веб-сервиса. CWebServiceAction
serviceVar строка имя GET-параметра, который различает запрос WSDL от запроса веб-сервиса. CWebServiceAction
wsdlUrl строка URL для WSDL. CWebServiceAction

Методы общедоступного доступа

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. CComponent
__construct() Конструктор. CAction
__get() Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. CComponent
__isset() Проверяет, является ли значение свойства null. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в значение null. CComponent
asa() Возвращает объект поведения с заданным именем. CComponent
attachBehavior() Присоединяет поведение к этому компоненту. CComponent
attachBehaviors() Присоединяет список поведений к компоненту. CComponent
attachEventHandler() Присоединяет обработчик событий к событию. CComponent
canGetProperty() Определяет, может ли свойство быть прочитано. CComponent
canSetProperty() Определяет, может ли свойство быть установлено. CComponent
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик событий. CComponent
disableBehavior() Отключает присоединённое поведение. CComponent
disableBehaviors() Отключает все присоединённые поведения этого компонента. CComponent
enableBehavior() Включает присоединённое поведение. CComponent
enableBehaviors() Включает все присоединённые поведения этого компонента. CComponent
evaluateExpression() Вычисляет PHP-выражение или обратный вызов в контексте этого компонента. CComponent
getController() Возвращает контроллер, которому принадлежит это действие. CAction
getEventHandlers() Возвращает список присоединённых обработчиков событий для события. CComponent
getId() Возвращает идентификатор этого действия. CAction
getService() Возвращает экземпляр веб-сервиса, который используется в данный момент. CWebServiceAction
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, имеет ли именованное событие присоединённые обработчики. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
raiseEvent() Вызывает событие. CComponent
run() Выполняет действие. CWebServiceAction
runWithParams() Выполняет действие с предоставленными параметрами запроса. CAction

Методы с защищённым доступом

Метод Описание Определено в
createWebService() Создаёт экземпляр CWebService. CWebServiceAction
runWithParamsInternal() Выполняет метод объекта с предоставленными параметрами. CAction

Подробное описание свойств

classMap свойство

public array $classMap;

список PHP-классов, объявленных как сложные типы в WSDL. Это должен быть массив, где ключами являются типы WSDL, а значениями — имена PHP-классов. PHP-класс также может быть указан как псевдоним пути.

См. также

  • http://www.php.net/manual/ru/soapclient.soapclient.php

provider свойство

public mixed $provider;

объект или имя класса поставщика веб-сервиса. Если указано как имя класса, это может быть псевдоним пути. По умолчанию значение null, что означает использование текущего контроллера в качестве поставщика услуг. Если поставщик реализует интерфейс IWebServiceProvider, он сможет перехватывать вызовы удалённых методов и выполнять дополнительные задачи (например, аутентификацию, ведение журналов).

service свойство только для чтения

public CWebService getService()

Возвращает экземпляр веб-службы, используемый в данный момент.

serviceOptions свойство

public array $serviceOptions;

начальные значения свойств для объекта CWebService. Ключи массива — имена свойств CWebService, а значения массива — соответствующие начальные значения свойств.

serviceUrl свойство

public string $serviceUrl;

URL веб-службы. По умолчанию null, что означает, что URL для этого действия используется для предоставления веб-служб. В этом случае, параметр GET с именем serviceVar будет использоваться для определения, предназначен ли текущий запрос для WSDL или веб-службы.

serviceVar свойство

public string $serviceVar;

имя параметра GET, который различает запрос WSDL от запроса веб-службы. Если этот параметр GET существует, запрос рассматривается как запрос веб-службы; в противном случае — как запрос WSDL. По умолчанию 'ws'.

wsdlUrl свойство

public string $wsdlUrl;

URL для WSDL. По умолчанию null, что означает, что URL для этого действия используется для предоставления документа WSDL.

Подробное описание методов

createWebService() метод

protected CWebService createWebService(mixed $provider, string $wsdlUrl, string $serviceUrl)
$provider mixed имя класса или объект поставщика веб-службы
$wsdlUrl string URL для WSDL.
$serviceUrl string URL для веб-службы.
{return} CWebService экземпляр веб-службы
Исходный код: framework/web/services/CWebServiceAction.php#127 (показать)
protected function createWebService($provider,$wsdlUrl,$serviceUrl)
{
    return new 
CWebService($provider,$wsdlUrl,$serviceUrl);
}

Создаёт экземпляр CWebService. Вы можете переопределить этот метод, чтобы настроить созданный экземпляр.

getService() метод

public CWebService getService()
{return} CWebService экземпляр веб-службы
Исходный код: framework/web/services/CWebServiceAction.php#114 (показать)
public function getService()
{
    return 
$this->_service;
}

Возвращает экземпляр веб-службы, используемый в данный момент.

run() метод

public void run()
Исходный код: framework/web/services/CWebServiceAction.php#83 (показать)
public function run()
{
    
$hostInfo=Yii::app()->getRequest()->getHostInfo();
    
$controller=$this->getController();
    if((
$serviceUrl=$this->serviceUrl)===null)
        
$serviceUrl=$hostInfo.$controller->createUrl($this->getId(),array($this->serviceVar=>1));
    if((
$wsdlUrl=$this->wsdlUrl)===null)
        
$wsdlUrl=$hostInfo.$controller->createUrl($this->getId());
    if((
$provider=$this->provider)===null)
        
$provider=$controller;

    
$this->_service=$this->createWebService($provider,$wsdlUrl,$serviceUrl);

    if(
is_array($this->classMap))
        
$this->_service->classMap=$this->classMap;

    foreach(
$this->serviceOptions as $name=>$value)
        
$this->_service->$name=$value;

    if(isset(
$_GET[$this->serviceVar]))
        
$this->_service->run();
    else
        
$this->_service->renderWsdl();

    
Yii::app()->end();
}

Выполняет действие. Если параметр GET serviceVar существует, действие обрабатывает вызов удалённого метода. Если нет, действие предоставит содержимое WSDL;

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CWebServiceAction

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API