中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 網(wǎng)絡(luò)編程 > php設(shè)計模式介紹之章代理模式
頁碼自動適應(yīng)范圍 回到列表 php設(shè)計模式介紹之規(guī)范模式
 php設(shè)計模式介紹之章代理模式

作者:mikale 時間: 2008-08-04 文檔類型:合作網(wǎng)站提供 來自:phpchina

第 1 頁 php設(shè)計模式介紹之章代理模式 [1]
第 2 頁 php設(shè)計模式介紹之章代理模式 [2]
第 3 頁 php設(shè)計模式介紹之章代理模式 [3]
第 4 頁 php設(shè)計模式介紹之章代理模式 [4]

一個簡單的例子

上面的簡單例子展示了代理模式的基本結(jié)構(gòu),當(dāng)然我們需要一些更有趣和實際的例子。

Web服務(wù)變得非常流行,PHP5包含了一些支持的很好的協(xié)議,就如SOAP一樣可以很容易的理解遠(yuǎn)程服務(wù)。 創(chuàng)建SOAP客戶端的部分功能是為了處理WSDL文件。然而,你可以延遲處理WSDL文件直到你需要處理這個文件的時候。席面一個代理的例子將會展示遠(yuǎn)程代理訪問SOAP服務(wù)和延遲實例化。

遠(yuǎn)程代理

首先,基于PHP5風(fēng)格, 來一段創(chuàng)建簡單的SoapClient對象的代碼。你必須編譯的時候加上—enable-soap選項,才能使用SoapClient類,如果你已經(jīng)做過了,那么你就可以用URL形式,把WSDL文件傳入構(gòu)造器來創(chuàng)建SoapClient實例:

// PHP5
$client = new SoapClient(
‘http://live。capescience。com/wsdl/GlobalWeather。wsdl’);

注:PHP4風(fēng)格的SoapClients
在你編碼PHP4風(fēng)格的SOAP客戶端之前,PHP5的技術(shù)可以忽略。PHP5 的SoapClient是一個擴(kuò)展,所以它是原生的PHP的代碼,速度更加快(譯注:這里的原生PHP代碼應(yīng)該是原生代碼,原生代碼是指編譯性語言編寫的代碼),實際上是用C語言完成解析和格式化XML信息的功能。

PHP4風(fēng)格 SOAP庫包括:

• phpsoaptoolkit (http://phpsoaptoolkit.sf.net/phpsoap/),
• PEAR::SOAP (
http://pear.php.net/package/SOAP)
• ez SOAP (
http://ez.no/ez_publish/documentation/development/libraries/ez_soap)
• nusoap (
http://sf.net/projects/nusoap/).

所有這些php4的庫在處理遠(yuǎn)程信息的格式化和傳遞的功能是使用PHP代碼實現(xiàn)的,并且有遠(yuǎn)程代理的例子。

首先一個問題是你用什么方法讓SoapClient做回應(yīng)? 運行var_dump(get_class_methods(get_class($client)));,你可以很容易的列舉在運行時的方法。需要更加詳細(xì)的例子的話,你可以參考下面的測試案例:

class ProxyTestCase extends UnitTestCase {
const WSDL = ‘http://live.capescience.com/wsdl/GlobalWeather.wsdl’;
private $client;
function setUp() {
$this->client = new SoapClient(ProxyTestCase::WSDL);
}
function TestMethodsOfSoapClient() {
$soap_client_methods = array(
‘__construct’,
‘__call’,
‘__soapCall’,
‘__getLastRequest’,
‘__getLastResponse’,
‘__getLastRequestHeaders’,
‘__getLastResponseHeaders’,
‘__getFunctions’,
‘__getTypes’,
‘__doRequest’);
$this->assertEqual(
$soap_client_methods,
get_class_methods(get_class($this->client)));
}
}

咋一看,似乎寫了一個沒有用的測試,難道你只是為了在任意時候顯示這些信息而已?或許吧,在PHP升級的時候,這個測試放入程序進(jìn)行測試對于監(jiān)視你的程序會很有用,比如發(fā)現(xiàn)有什么方法增加了,或者是你可以發(fā)現(xiàn)哪些被依賴的方法被刪除了,驗證PHP編譯的時候是否加入了SOAP選項。但必須要說的是,這個測試是極端的脆弱:其弱點就是會因為更改代碼的原因,需要重構(gòu)而且高度依賴函數(shù)列表的順序。目前,雖然這個測試描述了SoapClient如何工作,如果你想要放一個類似的測試進(jìn)行測試,最好還是重構(gòu)它,用in_array函數(shù)來明確的尋找你需要測試的函數(shù)。你可以使用SoapClient::__getFunctions()方法很容易的了解指定的SOAP提供什么服務(wù)。 在GlobalWeather.wsdl的案例,你可以按照下面方法做:

class ProxyTestCase extends UnitTestCase {
function TestSoapFunctions() {
$globalweather_functions = array(
The Proxy Pattern 195
‘Station getStation(string $code)’,
‘boolean isValidCode(string $code)’,
‘ArrayOfstring listCountries()’,
‘ArrayOfStation searchByCode(string $code)’,
‘ArrayOfStation searchByCountry(string $country)’,
‘ArrayOfStation searchByName(string $name)’,
‘ArrayOfStation searchByRegion(string $region)’,
‘WeatherReport getWeatherReport(string $code)’
);
$this->assertEqual(
$globalweather_functions,
$this->client->__getFunctions());
}
}

SoapClient::__getFunctions()會返回一個表示API的字符串?dāng)?shù)組給WEB服務(wù)。在每個方法中,都有返回類型,方法名,參數(shù)類型會被列出來。(建議你再次把上面那種測試方法放入程序中,已發(fā)布的web服務(wù),如果做了變更將立即發(fā)出警告。你可以想象一下,由于API的改變產(chǎn)生了一個bug,天氣信息忽然停止顯示在你的頁面,而你又沒有察覺到。如果做了這類的檢查,你會快速的獲得因更改API而產(chǎn)生的警告。)

出處:phpchina
責(zé)任編輯:bluehearts

上一頁 php設(shè)計模式介紹之章代理模式 [1] 下一頁 php設(shè)計模式介紹之章代理模式 [3]

◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論

相關(guān)文章 更多相關(guān)鏈接
php設(shè)計模式介紹之裝飾器模式
php設(shè)計模式介紹之規(guī)范模式
php設(shè)計模式介紹之觀測模式
一個月的php學(xué)習(xí)總結(jié)
php設(shè)計模式介紹之迭代器模式
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗 UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點最新 站點最新列表
周大!熬•自然”設(shè)計大賽開啟
國際體驗設(shè)計大會7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計算如何讓安全問題可控
云計算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺歷
Ps簡單繪制一個可愛的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡單的作品展示頁面
CSS定位機(jī)制之一:普通流
25個最佳最閃亮的Eclipse開發(fā)項目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁 首頁 前頁 后頁 尾頁 頁次:2/41個記錄/頁 轉(zhuǎn)到 頁 共4個記錄

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請不要盜鏈到本站,且不準(zhǔn)打上各自站點的水印,亦不能抹去我站點水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計作品,如需使用,請與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請與我們聯(lián)系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯誤,請用報告錯誤,以利文檔及時修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請您注意:
·不良評論請用報告管理員,以利管理員及時刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評論管理人員有權(quán)保留或刪除其管轄評論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報告錯誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計》
犀利開發(fā)—jQuery內(nèi)核詳解與實踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2