/**
  * @param  Application      $app
  * @param  Controller       $controller
  * @param  \ReflectionClass $controllerReflection
  * @return object
  */
 public static function constructController(Application $app, Controller $controller, \ReflectionClass $controllerReflection)
 {
     if ($controller->hasInjectionKeys()) {
         $args = array();
         foreach ($controller->getInjectionKeys() as $injectionKey) {
             if (isset($app[$injectionKey])) {
                 $args[] = $app[$injectionKey];
             }
         }
         $controllerInstance = $controllerReflection->newInstanceArgs($args);
     } else {
         $controllerInstance = $controllerReflection->newInstance();
     }
     return $controllerInstance;
 }