/** * @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; }