* * // Pass an array of parameters to the resolver * $mailer = IoC::resolve('mailer', array('test')); * </code> * * @param string $name * @param array $parameters * @return mixed */ public static function resolve($name, $parameters = array()) { if (array_key_exists($name, static::$singletons)) { return static::$singletons[$name]; } if (!static::registered($name)) { throw new \OutOfBoundsException("Error resolving [{$name}]. No resolver has been registered."); } $object = call_user_func(static::$registry[$name]['resolver'], $parameters); if (isset(static::$registry[$name]['singleton']) and static::$registry[$name]['singleton']) { return static::$singletons[$name] = $object; } return $object; } } /** * We only bootstrap the IoC container once the class has been * loaded since there isn't any reason to load the container * configuration until the class is first requested. */ IoC::bootstrap();