PHP 中的 SOAP 服务器错误 - 从类中添加函数

2024-03-27

我正在编写 SOAP 服务器并遇到了一个奇怪的问题。

这是 server.php 中的相关行

class MyHandler {
    public function __construct() { ... }
    public function __wakeup() { ... }

    public function getPrice() { ... }
}

$server = new SoapServer("my.wsdl", array("soap_version" => SOAP_1_2));

$server->setClass('MyHandler');
$server->addFunction("getPrice");
$server->handle();

在本地测试(在 PHP 5.3 上)效果很好,我能够发送请求并接收响应。

当我将其放入我的开发服务器(PHP 5.2.9)时,我收到以下错误消息:

SoapServer::addFunction(): Tried to add a non existant function 'getPrice'

除了他们不会拼写这一事实之外,这还非常令人困惑。

此后我设法通过更改来解决这个问题addFunction()对此行:

$server->addFunction(SOAP_FUNCTIONS_ALL);

...而且效果很好!当然,检查$server->getFunctions()表明这增加了__construct() and __wakeup()我的班级也有这些功能,这似乎不是一件好事。

我做错了什么?地毯式炸弹“添加所有功能”是唯一的方法吗?


Using addFunction()告诉它寻找一个名为的函数getPrice()独立于课堂之外。这个不存在,所以导致了错误。

Using addClass()将自动添加所有功能MyHandler,所以你不需要打电话addFunction(), getPrice()应该已经添加了。

此外,bugs.php.net 上有一个开放票证(针对 PHP 5.2.9),这似乎表明无法使用以下命令添加类方法addFunction(): http://bugs.php.net/bug.php?id=47919 http://bugs.php.net/bug.php?id=47919

但我无法访问 PHP 5.3,所以恐怕不确定事情会如何改变......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 中的 SOAP 服务器错误 - 从类中添加函数 的相关文章

  • 通过API更新Twitter背景

    我在通过 Twitter 的 API 更新背景时遇到了一些问题 target url http www google com logos 11th birthday gif ch curl init curl setopt ch CURLO
  • PHP UTF-8 配置

    我正在使用 PHP 5 3 5 配置 Apache 2 2 17 服务器 我的目标是创建一个默认为内容类型的干净配置UTF 8 php ini default charset UTF 8 default mimetype applicati
  • 精简 PHP 和 GET 参数

    我使用 Slim PHP 作为 RESTful API 的框架 如何在 Slim PHP 中从 URL 获取 GET 参数 例如 如果我想使用以下内容 http api example com dataset schools zip 999
  • Google Analytics PHP(发送信息)

    大意 我正在开发一个项目 我需要使用 Google Analytics 服务器端 我不需要检索信息 但我需要发送信息 我最终可以发送 js 脚本客户端 但在这种情况下它不是一个选项 以下大多数链接都非常旧 2012年 检索 不是我需要的 我
  • WordPress 计划事件未在设定时间触发

    在 WordPress 中 我正在创建一个插件 用于向用户发送电子邮件 为此 我使用 WordPresscron工作 所以基本上它要做的就是每小时向用户发送电子邮件 所以我的代码看起来像这样 public function construc
  • 无法使用 PHP ftp_connect() 连接 FTP 服务器

    我试图使用 PHP 的 ftp connect 函数连接 ftp 服务器 如下所示 但它返回这个错误 警告 ftp connect function ftp connect php network getaddresses getaddri
  • 某些表格后的分页符

    我的问题是 我有一个页面 其中包含几个要打印的 html 表格 有些表有很多行 有些则没有 我想要做的是将第一个和第二个表 大表 打印在单独的页面中 其余表 小表 每页打印两个 如何在我想要的位置放置分页符 我试过 但这会在每个表格后面添加
  • PHP 计数器在 while 循环中递增

    我在一个 while 循环中增加计数器时遇到问题 基本上我只想在数据库中获取的两个图像链接之间交替 但我的计数器不会增加 我不确定为什么有人可以提供帮助 while row stmt gt fetch PDO FETCH ASSOC img
  • 需要一个正则表达式将 css 类添加到第一个和最后一个列表项

    更新 谢谢大家的意见 一些附加信息 它实际上只是我正在使用的一小部分标记 20 行 目的是利用正则表达式来完成工作 我还能够修改脚本 电子商务脚本 以在构建导航时插入类 我想限制我所采用的黑客数量 以便在更新到软件的最新版本时让事情变得更容
  • 为什么 http://localhost/ 不使用 WAMP 加载任何内容?

    我最近尝试安装 WAMP 但发现没有页面加载 它还有一个橙色的 W 标志 如果这有什么意义的话 它确实说 托盘图标 WAMP服务器已上线尽管 我也做了一些研究 发现 Skype 可能会引起问题 所以我删除了使用端口 80 和 443 作为传
  • PHP 中的多行字符串文字

    考虑 xml l xml vv echo xml 这将回响vv 为什么以及如何为诸如此类的事情执行多行字符串文字简单XML https en wikipedia org wiki SimpleXML etc Well xml l vv Wo
  • 我可以在 Laravel 5.2 中创建一个继承自 User 的新类吗?

    我对 Laravel 还很陌生 使用的是迄今为止的最新版本 5 2 因此我遇到了以下困境 我知道 Laravel 附带了一个User开箱即用的类 但我想开发一个系统 在其中我可以有另外两种类型的用户 称为Researcher and Adm
  • 返回早期概念在 PHP 中有何用处

    我已经在以下链接中了解了最佳实践https pear php net manual en standards bestpractices php https pear php net manual en standards bestprac
  • 正则表达式:如何表达没有下划线的 \w

    有没有简洁的表达方式 w but without 即 w 中包含的所有字符 除了 我问这个是因为我正在寻找最简洁的方式来表达域名验证 域名可以包含小写和大写字母 数字 句号和破折号 但不能包含下划线 w 包括以上所有内容 加上下划线 那么
  • 如何将事件插入为 - Out Office

    我目前正在使用 Google Calendar API 并尝试在我的谷歌日历中插入新的 外出 事件 我使用以下代码插入事件 client getClient service new Google Service Calendar clien
  • 如何从 php 中的 .doc 文件获取页面数,以下代码适用于 .docx 而不是 .doc

    此代码工作 docx 格式文档 但我需要 doc 格式文档计数 php 中的页数 function CountPagesDocx filename zip new ZipArchive if zip gt open filename tru
  • 包含当月所有日期的 PHP 数组 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试并且仍然想知道如何获得一个
  • 如何找出当前正在运行的 PHP 可执行文件?

    在 PHP 程序内部 我想知道执行它的二进制文件的位置 Perl 有 X以此目的 PHP 中有等效的吗 这样它就可以使用自身执行子 PHP 进程 而不是硬编码路径或假设 php 是正确的 UPDATE 我使用的是lighttpd FastC
  • 多个数据库连接

    我有三张桌子 categories content info and content The categories表包含类别的id及其 IDparent类别 The content info包含两列 entry id帖子的 ID 和cat
  • 如何使用 PHP 从 iframe 获取 url

    如何从下面的链接获取 YouTube 网址 您可以使用 regex 和 preg match 函数 preg match src iframe string match url match 1 UPDATE如果您有使用 php 生成的页面或

随机推荐