2011-10-25 48 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