在我的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
)。
有什么想法吗?