diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index d0099e73..364215c1 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -53,7 +53,7 @@ use DateTime; use Exception; // mobile API -class APIController extends Controller +class APIController extends Controller implements LoggedController { protected $session; diff --git a/src/Controller/LoggedController.php b/src/Controller/LoggedController.php new file mode 100644 index 00000000..00e7c02a --- /dev/null +++ b/src/Controller/LoggedController.php @@ -0,0 +1,7 @@ +allow = true; + } + + public function onKernelController(ControllerEvent $event) + { + $controller = $event->getController(); + + // when a controller class defines multiple action methods, the controller + // is returned as [$controllerInstance, 'methodName'] + if (is_array($controller)) + $controller = $controller[0]; + + if ($controller instanceof LoggedController) + $this->allow = true; + else + $this->allow = false; + } + + public function onKernelResponse(ResponseEvent $event) + { + if (!$this->allow) + return; + + $resp = $event->getResponse(); + + $content = $resp->getContent(); + + error_log(print_r($content, true)); + } + + public static function getSubscribedEvents() + { + return [ + KernelEvents::CONTROLLER => 'onKernelController', + KernelEvents::RESPONSE => 'onKernelResponse', + ]; + } +}