/** * execute this containers view instance * * @return mixed the view's result * * @author David Zülke <*****@*****.**> * @author Felix Gilcher <*****@*****.**> * @since 1.0.0 */ protected function executeView(AgaviExecutionContainer $container) { $outputType = $container->getOutputType()->getName(); $request = $this->context->getRequest(); $viewInstance = $container->getViewInstance(); // $lm->log('View is not cached, executing...'); // view initialization completed successfully $executeMethod = 'execute' . $outputType; if (!is_callable(array($viewInstance, $executeMethod))) { $executeMethod = 'execute'; } $key = $request->toggleLock(); try { $viewResult = $viewInstance->{$executeMethod}($container->getRequestData()); } catch (Exception $e) { // we caught an exception... unlock the request and rethrow! $request->toggleLock($key); throw $e; } $request->toggleLock($key); return $viewResult; }
protected function log(AgaviExecutionContainer $container) { //keep this simple for now $this->rq->appendAttribute('actions', array('name' => $container->getActionName(), 'module' => $container->getModuleName(), 'request_data' => array('request_parameters' => $container->getRequestData()->getParameters(), 'cookies' => $container->getRequestData()->getCookies(), 'headers' => $container->getRequestData()->getHeaders()), 'validation' => $this->getValidationInfo($container), 'view' => $this->getViewInfo($container)), self::NS_DATA); }