Yii Framework v1.1.10 绫诲弬鑰

CWebServiceAction

system.web.services
缁ф壙 class CWebServiceAction » CAction » CComponent
瀹炵幇 IAction
婧愯嚜 1.0
鐗堟湰 $Id: CWebServiceAction.php 3426 2011-10-25 00:01:09Z alexander.makarow $
婧愮爜 framework/web/services/CWebServiceAction.php
CWebServiceAction瀹炵幇涓涓彁渚沇eb鏈嶅姟鐨勫姩浣溿

CWebServiceAction鏈嶅姟鏈変袱涓洰鐨勩備竴鏂归潰锛 瀹冩樉绀篧SDL涓寚瀹氱殑Web鏈嶅姟API鐨勫唴瀹广傚彟涓鏂归潰锛屽畠璋冪敤璇锋眰鐨刉eb service API銆備竴涓狦ET鍙傛暟鍚嶄负ws锛 鐢ㄦ潵鍖哄垎杩欎袱涓柟闈細GET鍙傛暟鐨勫瓨鍦 鎸囩ず鎵ц鍚庤呯殑琛屽姩銆

榛樿鎯呭喌涓嬶紝CWebServiceAction灏嗕娇鐢ㄥ綋鍓嶆帶鍒跺櫒 浣滀负Web service鎻愪緵鑰呫傚弬瑙CWsdlGenerator濡備綍澹版槑 鍙互杩滅▼璋冪敤鐨勬柟娉曘

璇锋敞鎰忥紝PHP SOAP鎵╁睍瀵逛簬杩欎竴鍔ㄤ綔鏄繀闇鐨勩

鍏叡灞炴

闅愯棌缁ф壙灞炴

灞炴绫诲瀷鎻忚堪瀹氫箟鍦
classMap array 鍦╓SDL涓0鏄庡鏉傜被鍨嬬殑PHP绫荤殑鍒楄〃銆 杩欏簲璇ユ槸涓涓猈SDL绫诲瀷浣滀负閿拰鍚嶇О浣滀负鍊肩殑PHP绫荤殑鏁扮粍銆 涓涓狿HP绫伙紝涔熷彲浠ユ寚瀹氫竴涓矾寰勫埆鍚嶃 CWebServiceAction
controller CController 鎷ユ湁杩欎釜鍔ㄤ綔鐨勬帶鍒跺櫒銆 CAction
id string 鍔ㄤ綔鐨処D銆 CAction
provider mixed Web service鎻愪緵鑰呯殑瀵硅薄鎴栬呯被鍚嶃 濡傛灉鎸囧畾涓涓被鍚嶏紝瀹冨彲浠ユ槸涓涓矾寰勫埆鍚嶃 榛樿涓簄ull锛岃繖鎰忓懗鐫褰撳墠鎺у埗鍣ㄦ槸浣滀负鏈嶅姟鎻愪緵鑰呫 濡傛灉鎻愪緵鑰呭疄鐜颁簡鎺ュ彛IWebServiceProvider锛 杩欏皢鏄兘澶熸嫤鎴繙绋嬫柟娉曡皟鐢紝骞舵墽琛岄澶栫殑浠诲姟 锛堝楠岃瘉锛屽啓鏃ュ織锛夈 CWebServiceAction
service CWebService 杩斿洖鐩墠姝e湪浣跨敤鐨刉eb鏈嶅姟瀹炰緥銆 CWebServiceAction
serviceOptions array CWebService瀵硅薄鍒濆灞炴у笺 鏁扮粍閿槸CWebService鐨勫睘鎬у悕绉帮紝 鏁扮粍涓殑鍊兼槸鐩稿簲鐨勫睘鎬х殑鍒濆鍊笺 CWebServiceAction
serviceUrl string Web service鐨刄RL銆傞粯璁や负null锛岃繖鎰忓懗鐫 杩欎釜鍔ㄤ綔鐨刄RL鏄敤鏉ユ彁渚沇eb鏈嶅姟銆 鍦ㄨ繖绉嶆儏鍐典笅锛屼竴涓懡鍚嶄负serviceVar鐨凣ET鍙傛暟 灏嗚鐢ㄦ潵纭畾褰撳墠璇锋眰鏄惁鏄疻SDL鎴朩eb鏈嶅姟鐨勩 CWebServiceAction
serviceVar string GET鍙傛暟鐨勫尯鍒粠涓涓猈eb鏈嶅姟璇锋眰鐨 WSDL璇锋眰鐨勫悕绉般傚鏋滃瓨鍦ㄨ繖涓狦ET鍙傛暟锛岃姹傝璁や负鏄綔涓轰竴涓猈eb鏈嶅姟璇锋眰锛 鍚﹀垯锛屽畠鏄竴涓猈SDL璇锋眰銆傞粯璁や负鈥渨s鈥濄 CWebServiceAction
wsdlUrl string WSDL鐨刄RL銆傞粯璁や负null锛岃繖鎰忓懗鐫 杩欎釜鍔ㄤ綔鐨刄RL鏄敤鏉ユ湇鍔$殑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() 璁$畻涓涓狿HP琛ㄨ揪寮忥紝鎴栨牴鎹粍浠朵笂涓嬫枃鎵ц鍥炶皟銆 CComponent
getController() 杩斿洖鎷ユ湁杩欎釜鍔ㄤ綔鐨勬帶鍒跺櫒銆 CAction
getEventHandlers() 杩斿洖涓涓簨浠剁殑闄勫姞澶勭悊绋嬪簭鍒楄〃銆 CComponent
getId() 杩斿洖鍔ㄤ綔鐨処D銆 CAction
getService() 杩斿洖鐩墠姝e湪浣跨敤鐨刉eb鏈嶅姟瀹炰緥銆 CWebServiceAction
hasEvent() 纭畾涓涓簨浠舵槸鍚﹀畾涔夈 CComponent
hasEventHandler() 妫鏌ヤ簨浠舵槸鍚︽湁闄勫姞鐨勫鐞嗙▼搴忋 CComponent
hasProperty() 纭畾灞炴ф槸鍚﹁瀹氫箟銆 CComponent
raiseEvent() 鍙戣捣涓涓簨浠躲 CComponent
run() 鎵ц鍔ㄤ綔銆 CWebServiceAction
runWithParams() 杩愯甯︽湁璇锋眰鍙傛暟鐨勫璞° CAction

鍙椾繚鎶ゆ柟娉

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
createWebService() 鍒涘缓CWebService瀹炰緥銆 CWebServiceAction
runWithParamsInternal() 鎵ц涓涓甫鏈夊懡鍚嶅弬鏁扮殑瀵硅薄鐨勬柟娉曘 CAction

灞炴ц缁

classMap 灞炴
public array $classMap;

鍦╓SDL涓0鏄庡鏉傜被鍨嬬殑PHP绫荤殑鍒楄〃銆 杩欏簲璇ユ槸涓涓猈SDL绫诲瀷浣滀负閿拰鍚嶇О浣滀负鍊肩殑PHP绫荤殑鏁扮粍銆 涓涓狿HP绫伙紝涔熷彲浠ユ寚瀹氫竴涓矾寰勫埆鍚嶃

provider 灞炴
public mixed $provider;

Web service鎻愪緵鑰呯殑瀵硅薄鎴栬呯被鍚嶃 濡傛灉鎸囧畾涓涓被鍚嶏紝瀹冨彲浠ユ槸涓涓矾寰勫埆鍚嶃 榛樿涓簄ull锛岃繖鎰忓懗鐫褰撳墠鎺у埗鍣ㄦ槸浣滀负鏈嶅姟鎻愪緵鑰呫 濡傛灉鎻愪緵鑰呭疄鐜颁簡鎺ュ彛IWebServiceProvider锛 杩欏皢鏄兘澶熸嫤鎴繙绋嬫柟娉曡皟鐢紝骞舵墽琛岄澶栫殑浠诲姟 锛堝楠岃瘉锛屽啓鏃ュ織锛夈

service 灞炴 鍙

杩斿洖鐩墠姝e湪浣跨敤鐨刉eb鏈嶅姟瀹炰緥銆

serviceOptions 灞炴
public array $serviceOptions;

CWebService瀵硅薄鍒濆灞炴у笺 鏁扮粍閿槸CWebService鐨勫睘鎬у悕绉帮紝 鏁扮粍涓殑鍊兼槸鐩稿簲鐨勫睘鎬х殑鍒濆鍊笺

serviceUrl 灞炴
public string $serviceUrl;

Web service鐨刄RL銆傞粯璁や负null锛岃繖鎰忓懗鐫 杩欎釜鍔ㄤ綔鐨刄RL鏄敤鏉ユ彁渚沇eb鏈嶅姟銆 鍦ㄨ繖绉嶆儏鍐典笅锛屼竴涓懡鍚嶄负serviceVar鐨凣ET鍙傛暟 灏嗚鐢ㄦ潵纭畾褰撳墠璇锋眰鏄惁鏄疻SDL鎴朩eb鏈嶅姟鐨勩

serviceVar 灞炴
public string $serviceVar;

GET鍙傛暟鐨勫尯鍒粠涓涓猈eb鏈嶅姟璇锋眰鐨 WSDL璇锋眰鐨勫悕绉般傚鏋滃瓨鍦ㄨ繖涓狦ET鍙傛暟锛岃姹傝璁や负鏄綔涓轰竴涓猈eb鏈嶅姟璇锋眰锛 鍚﹀垯锛屽畠鏄竴涓猈SDL璇锋眰銆傞粯璁や负鈥渨s鈥濄

wsdlUrl 灞炴
public string $wsdlUrl;

WSDL鐨刄RL銆傞粯璁や负null锛岃繖鎰忓懗鐫 杩欎釜鍔ㄤ綔鐨刄RL鏄敤鏉ユ湇鍔$殑WSDL鏂囨。銆

鏂规硶璇︾粏

createWebService() 鏂规硶
protected CWebService createWebService(mixed $provider, string $wsdlUrl, string $serviceUrl)
$provider mixed Web鏈嶅姟鎻愪緵鑰呯殑绫诲悕鎴栧璞
$wsdlUrl string WSDL鐨刄RL銆
$serviceUrl string Web service鐨刄RL銆
{return} CWebService Web service鐨勫疄渚
婧愮爜锛 framework/web/services/CWebServiceAction.php#128 (鏄剧ず)
protected function createWebService($provider,$wsdlUrl,$serviceUrl)
{
    return new 
CWebService($provider,$wsdlUrl,$serviceUrl);
}

鍒涘缓CWebService瀹炰緥銆 浣犲彲浠ラ噸鍐欐鏂规硶鑷畾涔夊垱寤虹殑瀹炰緥銆

getService() 鏂规硶
public CWebService getService()
{return} CWebService Web service鐨勫疄渚
婧愮爜锛 framework/web/services/CWebServiceAction.php#115 (鏄剧ず)
public function getService()
{
    return 
$this->_service;
}

杩斿洖鐩墠姝e湪浣跨敤鐨刉eb鏈嶅姟瀹炰緥銆

run() 鏂规硶
public void run()
婧愮爜锛 framework/web/services/CWebServiceAction.php#84 (鏄剧ず)
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瀛樺湪锛岃繖涓姩浣滃鐞嗚繙绋嬫柟娉曡皟鐢ㄣ 濡傛灉娌℃湁锛屽姩浣滃皢璋冪敤鏈嶅姟鐨刉SDL鍐呭锛

Copyright © 2008-2011 by Yii Software LLC
All Rights Reserved.