Cakephp 3 EventManager无法在服务器上运行(它在服务器上没有监听器但在本地有监听器)

时间:2015-10-16 12:47:34

标签: php events server local cakephp-3.0

我试图听完" afterSave"使用EventManager进行回调,如下所示:

use Cake\Event\EventManager;

EventManager::instance()->on(
    'Model.afterSave', function ($event) {
        // do something    
    }
);

问题:在本地工作,我可以做某事"保存模型时,但在服务器上它不起作用。

我发现在本地EventManager上有听众关联。如你所见:

use Cake\Event\EventManager;

debug(EventManager::instance());

object(Cake\Event\EventManager) {

    '_listeners' => [
        'Controller.shutdown' => '3 listener(s)',
        'Controller.initialize' => '2 listener(s)',
        'Controller.startup' => '2 listener(s)',
        'Controller.beforeRender' => '2 listener(s)',
        'View.beforeRender' => '2 listener(s)',
        'View.afterRender' => '2 listener(s)',
        'View.beforeLayout' => '2 listener(s)',
        'View.afterLayout' => '2 listener(s)',
        'View.beforeRenderFile' => '1 listener(s)',
        'View.afterRenderFile' => '1 listener(s)',
        'Model.afterSave' => '1 listener(s)'
    ],
    '_isGlobal' => true,
    '_generalManager' => '(object) EventManager'
}

但是在服务器EventManager上没有听众:

use Cake\Event\EventManager;

debug(EventManager::instance());

object(Cake\Event\EventManager) {

    '_listeners' => [],
    '_isGlobal' => true,
    '_generalManager' => '(object) EventManager'
}

为什么不在服务器上工作?它是否与服务器配置有关?

非常感谢!

0 个答案:

没有答案