我听 kernel.controller 动作来实现我的控制器的默认(或初始化)动作:
public function onKernelController(FilterControllerEvent $event)
{
$controller = $event->getController();
if (!is_array($controller)) {
return;
}
$currentController = $controller[0];
if($controller[0] instanceof Initmethod){
$ret = $currentController->init($event->getRequest());
if($ret !== null && $ret instanceof Response){
$ret->send();
exit();
}
}
$event->setController($controller);
}
如您所见,我想让我的 init 操作能够返回应该发送的响应,而不是被调用的操作之一。之后,不应执行任何其他操作。
我的问题是,我这样做的方式是否正确?因为不想“与框架作斗争”并通过调用 exit 来结束执行似乎并不正确。