php – Silex 2 addListener触发器错误

我正在尝试将一个事件监听器/调度程序添加到我的一个控制器操作中.

它的目标是在将数据保存到我的数据库之前将默认数据添加到我的实体.

这是我到目前为止所得到的.

app.php

$app['dispatcher']->addListener('my_event_name', function (Event $event) {
    // do something;
});

最终会出现以下错误:

( ! ) InvalidArgumentException: Identifier “dispatcher” does not contain an object definition. in /var/www/site/vendor/pimple/pimple/src/Pimple/Container.php on line 233

最佳答案 看看这个帖子.看起来它与您调用和初始化的精确顺序有关.

$this->before(function () {
    $this['dispatcher']->addListener($eventName, $callback);
});

https://github.com/silexphp/Silex-WebProfiler/issues/70#issuecomment-170399805

点赞