2011-10-25 63 views
2

我有一個腳本,我通過瀏覽器調用,其中我創建一個SoapClient對象。存儲SoapClient的下一個請求 - php

我想存儲SoapClient對象,這樣我可以在通過瀏覽器打開腳本時再次使用它。

我想要實現的是避免再次連接並使用以前的連接。

我試圖將它存儲在會話中,但SoapClient對象丟失了屬性sdl的值。 https://bugs.php.net/bug.php?id=36395

有沒有其他的實現方式。

+0

使用一些低級套接字並儘可能保持打開。 –

+0

搜索此解決方案時應使用的術語是['PHP持久SoapClient'](http://www.google.com/search?q=php+persistent+soapclient) - 關鍵詞是'[持續性(http://www.google.com/search?aq=f&gcx=c&sourceid=chrome&ie=UTF-8&q=persistent#hl=en&q=persistent&tbs=dfn:1&tbo=u&sa=X&ei=7pCmTu_zDoyLswa-qtn0DQ&ved=0CC4QkQ4&fp=1&biw = 1280&波黑= 892&BAV = on.2,or.r_gc.r_pw。,cf.osb及CAD = b)」。在那個搜索中,我翻了[這個頁面](https://bugs.php.net/bug.php?id=30498)(第三個結果) - 它能幫助你嗎? – DaveRandom

回答

0

正如PHP manual page說:

注意,許多內置的PHP對象不能被序列化。

有一些例外,但我不認爲SoapClient是。無論如何,我真的不能想到爲什麼你想要做它作爲性能明智的原因,它可能會低於序列化/反序列化的效率比每個請求實例化SoapClient類。

從WSDL實例化SoapClient非常簡單,你最好是這樣做。你可以寫一些輔助函數來爲你做。

+0

而不是使用肥皂我嘗試使用捲曲。它的速度比肥皂還快......但它仍然耗時太久。我意識到的是我正在使用magento,並且初始設置是需要時間的。連接到簡單的PHP文件是相當快的。任何想法我怎麼能避免這一點。 – pankaj

+0

所以你有一個應用程序,你正在使用Magento提供的webservices?我不太瞭解Magento,但如果您知道剛開始SoapClient需要很長時間,那麼Magento方面的WSDL如何生成?它是靜態文件還是動態生成的?從靜態WSDL設置SoapClient通常很快。實際的遠程服務呼叫可能會很慢,但您不會在消費方面解決這個問題。 – poisson