/** * Factory method * @param Resources $context * @return \static */ public static function generate(Resources $context) { $fuse = new static(); if ($context->has('logger')) { $fuse->setLogger($context->get('logger')); } $env = $context->config('application.environment'); if ($env->exists()) { $fuse->setEnvironment($env->str()); } return $fuse; }
/** * @param Param $params * @return object * @throws Exception\RuntimeException */ protected function controllerInstance(Param\Node $params, Resources $context, &$class = null) { // Get the parameter values $name = $params->value('controller'); if (!$name) { throw new Exception\RuntimeException("Routing parameter 'controller' is empty", 5); } $class = $this->className($name); $instance = null; // Create the instance if ($context && $context->has($class)) { $instance = $context->get($class); } elseif (class_exists($class, true)) { $instance = new $class(); } // Initialize if (method_exists($instance, 'init')) { $instance->init($context); } return $instance; }