代码之家  ›  专栏  ›  技术社区  ›  Chris Bloom

在PHP5中禁用本机Soap类并使用nuSoap?

  •  3
  • Chris Bloom  · 技术社区  · 16 年前

    我花了上周的时间开发了使用nuSoap库连接到Web服务的代码。我刚刚将代码部署到生产环境中,但立即开始出现以前从未见过的错误。我将问题追溯到一行代码,该代码试图实例化一个新的soapclient对象。事实证明,这两个库都有一个名为“soapclient”的类,而在生产环境中创建的类来自本机Soap库,而不是我所包含的nuSoap库。如何禁用本机Soap功能并严格遵守nuSoap?

    3 回复  |  直到 13 年前
        1
  •  2
  •   thetaiko    16 年前

    soapclient 类包含在php\u soap扩展中。NuSOAP已将其类重命名为 nusoap_client . 如果你的NuSOAP副本是最新的,你应该可以使用它。这不会禁用php\usoap扩展,但应该允许您使用NuSOAP类而不会产生进一步的冲突。

        2
  •  2
  •   Chris Bloom    16 年前

    啊,没关系。nusoap0.7.3(我正在使用)专门将类名更改为“NuSoap\u client”,以避免这种冲突。它们还包括一个向后兼容性检查,如果没有加载本机Soap扩展,该检查会将该类别名为“soapclient”,这就是为什么我在开发机器上没有捕捉到它的原因。

    裁判: http://code.google.com/p/nusoap-for-php5/issues/detail?id=2

        3
  •  0
  •   rook    16 年前

    一种方法是在编译时删除扩展:

    PHP配置为--enable soap。

    推荐文章