Doctrine事件订阅者仅在网站上注册

时间:2017-10-02 11:46:00

标签: php symfony doctrine-orm doctrine

在我的Symfony项目中,我有一个网站和几个在CLI中运行的Symfony命令。

实际上我创建了一个简单的Doctrine事件订阅者:

  doctrine.event_subscriber.web_sync:
      class: WebUiBundle\EventSubscriber\WebSyncSubscriber
      tags:
        - { name: doctrine.event_subscriber, connection: default }

所有工作都按预期工作,但关键是我只有在事件(postUpdate,postPersist等)来自网站而不是某些CLI命令时才需要调用此订阅者。

所以实际上在每个回调中,我检查请求是否来自CLI并具有以下功能:

function isCli() {
    return (!isset($_SERVER['SERVER_SOFTWARE']) && (php_sapi_name() == 'cli' || (is_numeric($_SERVER['argc']) && $_SERVER['argc'] > 0)));
}

但我想知道只有当Doctrine事件来自网站时才能直接注册和使用此订阅者(基本上是HttpKernel)。

有什么想法吗?

0 个答案:

没有答案