CWsdlGenerator
鍖 | system.web.services |
---|---|
缁ф壙 | class CWsdlGenerator » CComponent |
婧愯嚜 | 1.0 |
鐗堟湰 | $Id: CWsdlGenerator.php 2799 2011-01-01 19:31:13Z qiang.xue $ |
婧愮爜 | framework/web/services/CWsdlGenerator.php |
CWsdlGenerator鏄竴涓粰瀹氱殑鏈嶅姟绫荤敓鎴怶SDL銆
WSDL鐨勭敓鎴愭槸鍩轰簬鏈嶅姟绫绘枃浠朵腑鐨勬枃妗f敞閲娿 鐗瑰埆鏄紝瀹冭璇嗘敞閲婄殑鈥楡soap鈥欐爣璁癷t锛屽苟鎻愬彇鐗〢PI 鏂规硶鍜岀被鍨嬪畾涔夈
鍦ㄦ湇鍔$被涓紝涓涓繙绋嬭皟鐢ㄧ殑鏂规硶蹇呴』鏄叕鍏辨柟娉曚笌doc 娉ㄩ噴鍧楀寘鍚楡soap鈥欐爣璁般傚湪鏂囨。娉ㄩ噴锛岀被鍨嬪拰鍚嶇О 姣忎竴涓緭鍏ュ弬鏁板拰杩斿洖鍊肩殑绫诲瀷搴斾娇鐢 鏍囧噯phpdoc鏍煎紡銆
CWsdlGenerator璇嗗埆浠ヤ笅鐨勫師濮嬬被鍨嬶紙鍖哄垎澶у皬鍐欙級 鍙傛暟鍜岃繑鍥炵被鍨嬪0鏄庯細
濡傛灉绫诲瀷涓嶆槸涓涓師濮嬬被鍨嬶紝瀹冭璁や负鏄竴涓被绫诲瀷锛 CWsdlGenerator灏嗗鎵惧叾灞炴у0鏄庛傚彧鑰冭檻鍏叡灞炴э紝 瀹冧滑鍚勮嚜鍏宠仈鍒板寘鍚潃鈥楡soap鈥欐爣绛剧殑 doc娉ㄩ噴鍧椼俤oc娉ㄩ噴鍧楀簲璇ュ0鏄庡睘鎬х殑绫诲瀷銆
CWsdlGenerator璇嗗埆浠ヤ笅鏍煎紡鐨勬暟缁勭被鍨嬶細
涓嬮潰鏄0鏄庝竴涓繙绋嬭皟鐢ㄦ柟娉曠殑绀轰緥锛
浠ヤ笅鏄0鏄庝竴涓被涓庤繙绋嬭闂殑灞炴х殑渚嬪瓙锛
WSDL鐨勭敓鎴愭槸鍩轰簬鏈嶅姟绫绘枃浠朵腑鐨勬枃妗f敞閲娿 鐗瑰埆鏄紝瀹冭璇嗘敞閲婄殑鈥楡soap鈥欐爣璁癷t锛屽苟鎻愬彇鐗〢PI 鏂规硶鍜岀被鍨嬪畾涔夈
鍦ㄦ湇鍔$被涓紝涓涓繙绋嬭皟鐢ㄧ殑鏂规硶蹇呴』鏄叕鍏辨柟娉曚笌doc 娉ㄩ噴鍧楀寘鍚楡soap鈥欐爣璁般傚湪鏂囨。娉ㄩ噴锛岀被鍨嬪拰鍚嶇О 姣忎竴涓緭鍏ュ弬鏁板拰杩斿洖鍊肩殑绫诲瀷搴斾娇鐢 鏍囧噯phpdoc鏍煎紡銆
CWsdlGenerator璇嗗埆浠ヤ笅鐨勫師濮嬬被鍨嬶紙鍖哄垎澶у皬鍐欙級 鍙傛暟鍜岃繑鍥炵被鍨嬪0鏄庯細
- str/string锛氬搴斾簬xsd锛歴tring锛
- int/integer锛氬搴斾簬xsd锛歩nt锛
- float/double锛氬搴斾簬xsd锛歠loat锛
- bool/boolean锛氬搴斾簬xsd锛歜oolean锛
- date锛氬搴斾簬xsd锛歞ate锛
- time锛氬搴斾簬xsd锛歵ime锛
- datetime锛氬搴斾簬xsd锛歞ateTime锛
- array锛氬搴斾簬xsd锛歴tring锛
- object锛氬搴斾簬xsd锛歴truct锛
- mixed锛氬搴斾簬xsd锛歛nyType銆
濡傛灉绫诲瀷涓嶆槸涓涓師濮嬬被鍨嬶紝瀹冭璁や负鏄竴涓被绫诲瀷锛 CWsdlGenerator灏嗗鎵惧叾灞炴у0鏄庛傚彧鑰冭檻鍏叡灞炴э紝 瀹冧滑鍚勮嚜鍏宠仈鍒板寘鍚潃鈥楡soap鈥欐爣绛剧殑 doc娉ㄩ噴鍧椼俤oc娉ㄩ噴鍧楀簲璇ュ0鏄庡睘鎬х殑绫诲瀷銆
CWsdlGenerator璇嗗埆浠ヤ笅鏍煎紡鐨勬暟缁勭被鍨嬶細
typeName[]锛氬搴斾簬tns锛歵ypeNameArray
涓嬮潰鏄0鏄庝竴涓繙绋嬭皟鐢ㄦ柟娉曠殑绀轰緥锛
/ ** * foo鏂规硶銆 * @param string 鍚嶅瓧 * @param string 鍊 * @return string[] 涓浜涙暟缁 * @soap * / public function foo($name,$value) {...}
浠ヤ笅鏄0鏄庝竴涓被涓庤繙绋嬭闂殑灞炴х殑渚嬪瓙锛
class Foo { / ** * @var string name of foo * @soap * / public $name; / ** * @var Member[] members of foo * @soap * / public $members; }涓婇潰鐨勨榤embers鈥欏睘鎬ф槸鈥楳ember鈥欏璞$殑鏁扮粍銆傜敱浜庘楳ember鈥欎笉鏄竴涓師濮嬬被鍨嬶紝 CWsdlGenerator浼氶噸澶嶆煡鎵撅紝鎵惧嚭鈥楳ember鈥欑殑瀹氫箟銆
鍏叡灞炴
灞炴 | 绫诲瀷 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|---|
namespace | string | 鐢ㄦ潵鐢熸垚WSDL鐨勫懡鍚嶇┖闂淬 濡傛灉涓嶈缃, 榛樿涓烘槸鐢熸垚鐨刉SDL鐨勭被鐨勫悕瀛椼 | CWsdlGenerator |
serviceName | string | 鐢熸垚鐨刉SDL鐨勫悕瀛椼 濡傛灉涓嶈缃紝榛樿涓衡漸rn:{$className}wsdl鈥溿 | CWsdlGenerator |
鍏叡鏂规硶
灞炴ц缁
namespace
灞炴
public string $namespace;
鐢ㄦ潵鐢熸垚WSDL鐨勫懡鍚嶇┖闂淬 濡傛灉涓嶈缃, 榛樿涓烘槸鐢熸垚鐨刉SDL鐨勭被鐨勫悕瀛椼
serviceName
灞炴
public string $serviceName;
鐢熸垚鐨刉SDL鐨勫悕瀛椼 濡傛灉涓嶈缃紝榛樿涓衡漸rn:{$className}wsdl鈥溿
鏂规硶璇︾粏
generateWsdl()
鏂规硶
public string generateWsdl(string $className, string $serviceUrl, string $encoding='UTF-8')
| ||
$className | string | 绫诲悕瀛椼 |
$serviceUrl | string | Web service鐨刄RL |
$encoding | string | WSDL鐨勭紪鐮併傞粯璁や负鈥楿TF-8鈥欍 |
{return} | string | 鐢熸垚鐨刉SDL |
婧愮爜锛 framework/web/services/CWsdlGenerator.php#107 (鏄剧ず)
public function generateWsdl($className, $serviceUrl, $encoding='UTF-8')
{
$this->_operations=array();
$this->_types=array();
$this->_messages=array();
if($this->serviceName===null)
$this->serviceName=$className;
if($this->namespace===null)
$this->namespace="urn:{$className}wsdl";
$reflection=new ReflectionClass($className);
foreach($reflection->getMethods() as $method)
{
if($method->isPublic())
$this->processMethod($method);
}
return $this->buildDOM($serviceUrl,$encoding)->saveXML();
}
涓烘寚瀹氱殑绫荤敓鎴怶SDL銆