protected function _invoke(Controller $controller) { $result = $controller->startupProcess(); if ($result instanceof Response) { return $result; } $response = $controller->invokeAction(); if ($response !== null && !$response instanceof Response) { throw new LogicException('Controller actions can only Cake\\Network\\Response instances'); } if (!$response && $controller->autoRender) { $response = $controller->render(); } elseif (!$response) { $response = $controller->response; } $result = $controller->shutdownProcess(); if ($result instanceof Response) { return $result; } return $response; }
/** * Invoke a controller's action and wrapping methods. * * @param \Cake\Controller\Controller $controller The controller to invoke. * @return \Cake\Network\Response The response * @throws \LogicException If the controller action returns a non-response value. */ protected function _invoke(Controller $controller) { $this->dispatchEvent('Dispatcher.invokeController', ['controller' => $controller]); $result = $controller->startupProcess(); if ($result instanceof Response) { return $result; } $response = $controller->invokeAction(); if ($response !== null && !$response instanceof Response) { throw new LogicException('Controller actions can only return Cake\\Network\\Response or null.'); } if (!$response && $controller->autoRender) { $response = $controller->render(); } elseif (!$response) { $response = $controller->response; } $result = $controller->shutdownProcess(); if ($result instanceof Response) { return $result; } return $response; }
/** * Initializes the components and models a controller will be using. * Triggers the controller action and invokes the rendering if Controller::$autoRender * is true. If a response object is returned by controller action that is returned * else controller's $response property is returned. * * @param Controller $controller Controller to invoke * @return \Cake\Network\Response The resulting response object * @throws \Cake\Error\Exception If data returned by controller action is not an * instance of Response */ protected function _invoke(Controller $controller) { $controller->constructClasses(); $result = $controller->startupProcess(); if ($result instanceof Response) { return $result; } $response = $controller->invokeAction(); if ($response !== null && !$response instanceof Response) { throw new Exception('Controller action can only return an instance of Response'); } if (!$response && $controller->autoRender) { $response = $controller->render(); } elseif (!$response) { $response = $controller->response; } $result = $controller->shutdownProcess(); if ($result instanceof Response) { return $result; } return $response; }