/** * The name of the action method will render by default. * * render 'listDocuments' template file * <code> * <?php * ... * $this->renderAction('listDocuments'); * ... * ?> * </code> * * @param string $name */ protected function renderAction($name) { // current url $this->_view->currentUrl = '/' . $this->_request->getUri(); // copy instance variables foreach (get_object_vars($this) as $key => $value) { $this->_view->{$key} = $value; } // add suffix if ($this->_actionConflict) { $name = str_replace('Action', '', $name); } if (!strstr($name, '.')) { $name .= '.html'; } // prepend this controller's "short name" only if the action was // specified without a controller "short name". // e.g. index -> Shortname/index // Shortname/index -> Shortname/index if (!strstr($name, '/')) { $name = $this->_shortName . '/' . $name; } // respond to Javascript accept header if ($this->respondTo()->js) { // don't use application layout for JS if (strstr($this->_layoutName, 'application')) { $this->useLayout(false); } $this->_response->setHeader('Content-Type: text/javascript; charset=utf-8'); $name = str_replace('.html', '.js', $name); if (!file_exists(MAD_ROOT . '/app/views/' . $name)) { throw new Mad_Controller_Exception("Missing template for: <b>{$name}</b>"); } } if ($this->_useLayout) { $this->_view->contentForLayout = $this->_view->render($name); $text = $this->_view->render($this->_layoutName); } else { $text = $this->_view->render($name); } $this->renderText($text); }
/** * Log the http request * * @todo - get total query times * * @param Mad_Controller_Request_Http $request * @param int $totalTime */ protected function _logRequest($request, $totalTime) { $queryTime = 0; // total time to execute queries $queryCount = 0; // total queries performed $phpTime = $totalTime - $queryTime; // embed user info in log $uri = $request->getUri(); $method = $request->getMethod(); $paramStr = 'PARAMS=' . $this->_formatLogParams($request->getParameters()); $msg = sprintf("{$method} {$uri} %.4fs (DB=%.4fs [{$queryCount}] PHP=%.4fs) {$paramStr}", $totalTime, $queryTime, $phpTime); $msg = wordwrap($msg, 80, "\n\t ", 1); Mad_Controller_Dispatcher::logger()->info($msg); }