public static function run() { self::setRequest(); $response = new Zend_Controller_Response_Http(); $channel = Zend_Wildfire_Channel_HttpHeaders::getInstance(); $channel->setRequest(self::$_request); $channel->setResponse($response); // Start output buffering ob_start(); try { self::prepare(); Lms_Debug::debug('Request URI: ' . $_SERVER['REQUEST_URI']); try { self::$_frontController->dispatch(self::$_request); } catch (Exception $e) { Lms_Debug::crit($e->getMessage()); Lms_Debug::crit($e->getTraceAsString()); } self::close(); } catch (Exception $e) { Lms_Debug::crit($e->getMessage()); Lms_Debug::crit($e->getTraceAsString()); } // Flush log data to browser $channel->flush(); $response->sendHeaders(); }
/** * Dispatch the request to the dispatcher, catching any errors which bubble up * to the surface and, in that event, display a nice template describing the error * with debugging information. This method also controls the displaying of debug * information in every request. */ public function dispatch() { try { Primitus::startTimer('request'); parent::dispatch(); $request_time = number_format(Primitus::stopTimer('request'), 2); if (defined("Primitus_DEBUG") && Primitus_DEBUG) { $engine = new Primitus_View_Engine(); $debugInfo = Primitus::generateDebuggingData(); $engine->assign("debug", $debugInfo); $engine->display("_main/debug.tpl"); } } catch (Exception $e) { $originalError = $e; try { $engine = new Primitus_View_Engine(); $engine->assign('error', $originalError); $engine->display("_main/error.tpl"); } catch (Exception $e) { $msg = "{$originalError->getMessage()} (Additionally, there was an error in the error handler: {$e->getMessage()})"; print $e->getTraceAsString(); $this->_printUglyMessage($msg); die; } } }
public function testCanLoadNamespacedHelper() { $this->front->setControllerDirectory(dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . '_files')->setResponse(new Zend_Controller_Response_Cli())->returnResponse(true); $path = dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . '_files/Helpers'; Zend_Controller_Action_HelperBroker::addPath($path, 'MyApp\\Controller\\Action\\Helper\\'); $request = new Zend_Controller_Request_Http('http://framework.zend.com/helper-broker/test-can-load-namespaced-helper/'); $response = $this->front->dispatch($request); $this->assertEquals('MyApp\\Controller\\Action\\Helper\\NamespacedHelper', $response->getBody()); }
/** * Do the MVC magic... Dispatch the frontcontroller */ private function dispatch() { /** * Do the magic */ try { $this->frontController->dispatch(); } catch (Exception $e) { if ($this->config->general->env == 'DEV') { /** * Custom error message if any */ $prms = $this->frontController->getRequest(); if ($prms->format == 'json') { $outp = array(); $outp['CaughtException'] = get_class($e); $outp['message'] = $e->getMessage(); $outp['code'] = $e->getCode(); $outp['file'] = $e->getFile(); $outp['line'] = $e->getLine(); $outp['trace'] = $e->getTrace(); $outp['tracehtml'] = ''; foreach ($outp['trace'] as $le) { $outp['tracehtml'] .= "" . "<b>Line</b>: " . $le['line'] . " | " . "<b>Function</b>: " . $le['function'] . " | " . "<b>Class</b>: " . $le['class'] . " | " . "<br>"; } print Zend_Json::encode($outp); } else { $outp = ''; $outp .= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>APPLICATION ERROR</title> <link href="' . $this->config->general->cdn . '/sydneyassets/styles/main.css" rel="stylesheet" type="text/css" /> </head><style>.errorbug { font-face: courrier; } th { text-align: left; background: #EEE; } </style><body>'; $outp .= '<div class="errorbug subBox"><h1>Sydney debug info</h1><ul>'; $outp .= "<li><b>Caught exception:</b> " . get_class($e) . "</li>\n"; $outp .= "<li><b>Message:</b> " . $e->getMessage() . "</li>\n"; $outp .= "<hr>\n"; $outp .= "<li><b>Code:</b> " . $e->getCode() . "</li>\n"; $outp .= "<li><b>File:</b> " . $e->getFile() . "</li>\n"; $outp .= "<li><b>Line:</b> " . $e->getLine() . "</li>\n"; $outp .= "<li><b>Trace:</b><table><tr><th class=\"errortrace\">" . implode('</td></tr><tr><th class="errortrace">', explode("\n", $e->getTraceAsString())) . "</td></tr></table>"; $outp .= '</ul></div>'; $outp .= '</body></html>'; print $this->_errologtreat($outp); } } else { print "APPLICATION ERROR... Please contact the technical support"; } } }
public function testUsingFrontController() { $controller = new Zend_Controller_Front(); $controller->setControllerDirectory(dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . '_files'); $request = new Zend_Controller_Request_Http('http://framework.zend.com/empty'); $controller->setResponse(new Zend_Controller_Response_Cli()); $controller->setRouter(new Zend_Controller_Router()); $plugin = new Zend_Controller_Plugin_BrokerTest_TestPlugin(); $controller->registerPlugin($plugin); $response = $controller->dispatch($request); $this->assertEquals('123456', $response->getBody()); $this->assertEquals('123456', $plugin->getResponse()->getBody()); }
/** * Match route first, then determine dispatcher to use, * then call parent method. * * @param Zend_Controller_Request_Abstract $request */ public function dispatch(Zend_Controller_Request_Abstract $request = null, Zend_Controller_Response_Abstract $response = null) { if (null !== $request) { $this->setRequest($request); } else { $request = new Glitch_Controller_Request_Rest(); $this->setRequest($request); } $router = $this->getRouter(); $router->route($request); if ($router->getCurrentRoute(false) != null && $router->getCurrentRoute(false) instanceof Glitch_Controller_Router_Route_Rest) { $this->setDispatcher(Glitch_Controller_Dispatcher_Rest::cloneFromDispatcher($this->getDispatcher())); $response = new Glitch_Controller_Response_Rest(); } return parent::dispatch($request, $response); }
public function run() { $this->init(); foreach ($this->config['plugins'] as $name => $config) { include_once $name . '.php'; $plugin = new $name($config); $this->frontController->registerPlugin($plugin); } try { $__start = getmicrotime(); $this->frontController->dispatch(); za()->recordStat('za::dispatch', getmicrotime() - $__start); } catch (Exception $e) { // record the current _GET and _POST variables $this->logger->err("Dispatch failed for " . current_url() . ": " . $e->getMessage() . ", get and post to follow"); $this->logger->err(print_r($_REQUEST, true)); throw $e; } }
public function testLoadFlashMessenger() { $this->markTestSkipped(); $response = $this->front->dispatch($this->request); $this->assertEquals('Zend_Controller_Action_Helper_FlashMessenger123456', $response->getBody()); }
/** * Dispatches the request * * @param Zend_Controller_Front $frontController - The frontcontroller * @return Zend_Controller_Response_Abstract */ public function dispatch(Zend_Controller_Front $frontController, Zend_Controller_Request_Abstract $request = null, Zend_Controller_Response_Abstract $response = null) { // Return the response $frontController->returnResponse(true); return $frontController->dispatch(); }
/** * Processes the requestStack and merges their responses into $response. * * @param Zend_Controller_Front $front * @param Zend_Controller_Response_Abstract $response * */ protected function _processRequestStack($front, Zend_Controller_Response_Abstract $response) { $stack =& $this->_requestStack; $config =& $this->_config; $i = count($stack) - 1; $responseStack = array(); $front->returnResponse(true); do { $myResponse = new Zend_Controller_Response_Http(); $nextRequest = array_pop($stack); $nextRequest->setParam($config['indexKey'], $i); $this->_resetHelper(); $this->_resetPlugins(); $this->_resetParams($nextRequest->getParams()); $front->setRequest($nextRequest); $front->setResponse($myResponse); $responseStack[] = $front->dispatch($nextRequest, $myResponse); } while ($i--); $front->returnResponse(false); $bodies = array(); for ($i = 0, $len = count($responseStack); $i < $len; $i++) { $bodies[] = $responseStack[$i]->getBody(); } $body = implode(',', $bodies); $response->setBody('[' . $body . ']'); }
public function dispatch(Zend_Controller_Request_Abstract $request = null, Zend_Controller_Response_Abstract $response = null) { if ($request === null) { if (PHP_SAPI == 'cli') { $request = new Kwf_Controller_Request_Cli(); } else { $request = new Kwf_Controller_Request_Http(); } } if ($response === null) { $response = new Kwf_Controller_Response_Http(); } try { $ret = parent::dispatch($request, $response); } catch (Zend_Controller_Router_Exception $e) { if ($e->getCode() == 404) { //fired by Zend_Controller_Router_Rewrite::route, transform into proper 404 throw new Kwf_Exception_NotFound(); } else { throw $e; } } Kwf_Benchmark::shutDown(); return $ret; }
public function dispatch(Zend_Controller_Request_Abstract $request = null, Zend_Controller_Response_Abstract $response = null) { try { if ($this->_started) { return parent::dispatch($request, $response); } else { require_once 'Sitengine/Controller/Exception.php'; $message = 'start() must be called before calling dispatch()'; throw new Sitengine_Controller_Exception($message); } } catch (Exception $exception) { $message = 'A System Error has occured. Please check back later'; if ($this->_response instanceof Zend_Controller_Response_Http) { $this->_response->setException($exception); $this->_response->setHttpResponseCode(500); $this->_response->sendResponse(); print $message; return $this->_response; } else { print $message; return null; } } }
/** * Dispatches all requests. * * @param Zend_Controller_Front $controller * @return array|null Array of Response objects, or null if no tasks */ public function run(Zend_Controller_Front $controller) { $router = $controller->getRouter(); $returnResponse = $controller->returnResponse(); $responses = array(); foreach ($this->_requests as $request) { if ($request->getControllerName()) { // Use default router $controller->setRouter(new Zend_Controller_Router()); } if ($returnResponse) { $responses[] = $controller->dispatch($request); } $controller->setRouter($router); } $this->_completed = true; return $responses; }