你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
对 events.php 设置 namespace YourApp; $worker->eventHandler = 'YourApp\Events'; 启动的时候,就会报错 Waring: Events::onMessage is not callable 这是按照文档来的,为什么还是报错呢,这是什么原因
没有找到相关结果
zasray - ITnan
赞同来自: super_yc
我也遇到了这个问题,经过自己摸索,已经 解决。 看了BusinessWorker类中,是通过is_callable函数来判断是否是函数的。 源码如下:
if (is_callable($this->eventHandler . '::onMessage')) { $this->_eventOnMessage = $this->eventHandler . '::onMessage'; } else { echo "Waring: {$this->eventHandler}::onMessage is not callable\n"; }
_这时我们心中的问题就是:那为何我们带入命名空间后还是无法通过is_callable的检测呢?_ 答案:我们的命名空间没有注册,无法被BusinessWorker发现。 解决方法:在composer.json中注册,代码如下(Application就是我的命名空间,您自己的可以根据实际情况修改Applications(命名空间)文件夹要composer.json同级):"
autoload": { "psr-4": { "Applications\\": "Applications/" } }
damao - phper
赞同来自:
没加载到文件吧
要回复问题请先登录或注册
2 个回复
zasray - ITnan
赞同来自: super_yc
我也遇到了这个问题,经过自己摸索,已经 解决。
看了BusinessWorker类中,是通过is_callable函数来判断是否是函数的。
源码如下:
_这时我们心中的问题就是:那为何我们带入命名空间后还是无法通过is_callable的检测呢?_
答案:我们的命名空间没有注册,无法被BusinessWorker发现。
解决方法:在composer.json中注册,代码如下(Application就是我的命名空间,您自己的可以根据实际情况修改Applications(命名空间)文件夹要composer.json同级):"
damao - phper
赞同来自:
没加载到文件吧