Example #1
0
 /**
  * Binds the messaging system to a controller to enable `'message'` option flags in various
  * controller methods, such as `render()` and `redirect()`.
  *
  * @param object $controller An instance of `lithium\action\Controller`.
  * @param array $options Options.
  * @return object Returns the passed `$controller` instance.
  */
 public static function bindTo(Controller $controller, array $options = array())
 {
     $controller->applyFilter('__invoke', function ($self, $params, $chain) {
         $data = array();
         $data['start'] = microtime(true);
         $data['memory'] = memory_get_usage(true);
         $data['name'] = Debugger::get('controller') . ':' . Debugger::get('action') . '->__invoke()';
         $result = $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 $result;
     });
     return $controller;
 }