国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

events.php 設(shè)置命名空間

evilk

對(duì) events.php 設(shè)置 namespace YourApp;
$worker->eventHandler = 'YourApp\Events';
啟動(dòng)的時(shí)候,就會(huì)報(bào)錯(cuò) Waring: Events::onMessage is not callable
這是按照文檔來的,為什么還是報(bào)錯(cuò)呢,這是什么原因

5594 4 0
4個(gè)回答

damao

沒加載到文件吧

  • 暫無評(píng)論
zasray

我也遇到了這個(gè)問題,經(jīng)過自己摸索,已經(jīng) 解決。
看了BusinessWorker類中,是通過is_callable函數(shù)來判斷是否是函數(shù)的。
源碼如下:

if (is_callable($this->eventHandler . '::onMessage')) {
    $this->_eventOnMessage = $this->eventHandler . '::onMessage';
} else {
    echo "Waring: {$this->eventHandler}::onMessage is not callable\n";
}

_這時(shí)我們心中的問題就是:那為何我們帶入命名空間后還是無法通過is_callable的檢測呢?_
答案:我們的命名空間沒有注冊,無法被BusinessWorker發(fā)現(xiàn)。
解決方法:在composer.json中注冊,代碼如下(Application就是我的命名空間,您自己的可以根據(jù)實(shí)際情況修改Applications(命名空間)文件夾要composer.json同級(jí)):"

autoload": {
    "psr-4": {
        "Applications\\": "Applications/"
    }
}

?

  • 暫無評(píng)論
小D

嘗試了很多方式都沒解決,我妥協(xié)了,用原生引入文件,

include_once __DIR__ .'/../../../../application/push/controller/Events.php';
$directory=new Events();
if (method_exists($directory,'onMessage')) {
     $this->_eventOnMessage = $this->eventHandler . '::onMessage';
 } else {
     echo "Waring: {$this->eventHandler}::onMessage is not callable\n";
 }
  • 暫無評(píng)論
Tinywan

必須執(zhí)行

composer dump-autoload

修改的 composer.json 文件配置自動(dòng)加載才生效

  • 暫無評(píng)論
年代過于久遠(yuǎn),無法發(fā)表回答
??