public static function initDispatcher() { // Request -> Response Filters::apply('lithium\\action\\Dispatcher', 'run', function ($self, $params, $chain) { $data = array(); $data['start'] = microtime(true); $data['memory'] = memory_get_usage(true); $data['name'] = 'Dispatcher::run'; $response = $chain->next($self, $params, $chain); $data['end'] = microtime(true); $data['memory'] = memory_get_usage(true) - $data['memory']; $data['time'] = $data['end'] - $data['start']; Debugger::push('events', $data); Debugger::inc('events.time', $data['time']); return $response; }); // Router -> Controller Filters::apply('lithium\\action\\Dispatcher', '_callable', function ($self, $params, $chain) { $data = array(); $data['start'] = microtime(true); $data['memory'] = memory_get_usage(true); $data['name'] = 'Dispatcher::_callable'; $controller = $chain->next($self, $params, $chain); $data['end'] = microtime(true); $data['memory'] = memory_get_usage(true) - $data['memory']; $data['time'] = $data['end'] - $data['start']; Debugger::push('events', $data); Debugger::inc('events.time', $data['time']); if ($controller instanceof \lithium\action\Controller) { Debugger::setRequest($params['request']); Debugger::bindTo($controller); } return $controller; }); }