CWebServiceAction
| Пакет | system.web.services |
|---|---|
| Наследование | class CWebServiceAction » CAction » CComponent |
| Реализует | IAction |
| С версии | 1.0 |
| Исходный код | framework/web/services/CWebServiceAction.php |
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-класс также может быть указан как псевдоним пути.
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 | экземпляр веб-службы |
protected function createWebService($provider,$wsdlUrl,$serviceUrl)
{
return new CWebService($provider,$wsdlUrl,$serviceUrl);
}
Создаёт экземпляр CWebService. Вы можете переопределить этот метод, чтобы настроить созданный экземпляр.
getService() метод
public CWebService getService() | ||
| {return} | CWebService | экземпляр веб-службы |
public function getService()
{
return $this->_service;
}
Возвращает экземпляр веб-службы, используемый в данный момент.
run() метод
public void run() |
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