Beispiel #1
0
     *
     *		// 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();