public static function load($class_name = null, $safe = false)
    {
        if (empty($class_name)) {
            $class_name = self::getInternal('assets-config-class');
        }
    
        // init the registry
        if (empty(self::$__registry)) {
            self::$__registry = array_combine(self::$_requires,
                array_pad(array(), count(self::$_requires), null));
        }

        // init the configurator object
        if (empty(self::$__configurator) || $class_name!=get_class(self::$__configurator)) {
            if ($safe && !class_exists($class_name)) {
                $class_name = self::getInternal('assets-config-class');
            }

            if (class_exists($class_name)) {
                $interfaces = class_implements($class_name);
                $config_interface = self::getInternal('assets-config-interface');
                if (in_array($config_interface, $interfaces)) {
                    self::$__configurator = new $class_name;
                    $defaults = self::$__configurator->getDefaults();
                    if (self::_validateConfig($defaults)) {
                        self::$__registry = $defaults;
                    } else {
                        Error::thrower(
                            sprintf('Configuration class "%s" do not define all required values!',
                                $class_name),
                            '\Exception', __CLASS__, __METHOD__, __LINE__
                        );
                    }
                } else {
                    Error::thrower(
                        sprintf('Configuration class "%s" must implement interface "%s"!',
                            $class_name, $config_interface),
                        '\DomainException', __CLASS__, __METHOD__, __LINE__
                    );
                }
            } else {
                Error::thrower(
                    sprintf('Configuration class "%s" not found!', $class_name),
                    '\DomainException', __CLASS__, __METHOD__, __LINE__
                );
            }
        }
    }
public static function load($class_name = null, $safe = false)
    {
        if (empty($class_name)) {
            $class_name = self::getInternal('assets-config-class');
        }
    
        // init the registry
        if (empty(self::$__registry)) {
            self::$__registry = array_combine(self::$_requires,
                array_pad(array(), count(self::$_requires), null));
        }

        // init the configurator object
        if (empty(self::$__configurator) || $class_name!=get_class(self::$__configurator)) {
            if ($safe && !class_exists($class_name)) {
                $class_name = self::getInternal('assets-config-class');
            }

            if (class_exists($class_name)) {
                $interfaces = class_implements($class_name);
                $config_interface = self::getInternal('assets-config-interface');
                if (in_array($config_interface, $interfaces)) {
                    self::$__configurator = new $class_name;
                    $defaults = self::$__configurator->getDefaults();
                    if (self::_validateConfig($defaults)) {
                        self::$__registry = $defaults;
                    } else {
                        Error::thrower(
                            sprintf('Configuration class "%s" do not define all required values!',
                                $class_name),
                            '\Exception', __CLASS__, __METHOD__, __LINE__
                        );
                    }
                } else {
                    Error::thrower(
                        sprintf('Configuration class "%s" must implement interface "%s"!',
                            $class_name, $config_interface),
                        '\DomainException', __CLASS__, __METHOD__, __LINE__
                    );
                }
            } else {
                Error::thrower(
                    sprintf('Configuration class "%s" not found!', $class_name),
                    '\DomainException', __CLASS__, __METHOD__, __LINE__
                );
            }
        }
    }
public static function load ( $ class_name = null , $ safe = false ) { if ( empty ( $ class_name ) ) { $ class_name = self :: getInternal ( 'assets-config-class' ) ; } // init the registry if ( empty ( self :: $ __registry ) ) { self :: $ __registry = array_combine ( self :: $ _requires , array_pad ( array ( ) , count ( self :: $ _requires ) , null ) ) ; } // init the configurator object if ( empty ( self :: $ __configurator ) || $ class_name != get_class ( self :: $ __configurator ) ) { if ( $ safe && ! class_exists ( $ class_name ) ) { $ class_name = self :: getInternal ( 'assets-config-class' ) ; } if ( class_exists ( $ class_name ) ) { $ interfaces = class_implements ( $ class_name ) ; $ config_interface = self :: getInternal ( 'assets-config-interface' ) ; if ( in_array ( $ config_interface , $ interfaces ) ) { self :: $ __configurator = new $ class_name ; $ defaults = self :: $ __configurator -> getDefaults ( ) ; if ( self :: _validateConfig ( $ defaults ) ) { self :: $ __registry = $ defaults ; } else { Error :: thrower ( sprintf ( 'Configuration class "%s" do not define all required values!' , $ class_name ) , '\Exception' , __CLASS__ , __METHOD__ , __LINE__ ) ; } } else { Error :: thrower ( sprintf ( 'Configuration class "%s" must implement interface "%s"!' , $ class_name , $ config_interface ) , '\DomainException' , __CLASS__ , __METHOD__ , __LINE__ ) ; } } else { Error :: thrower ( sprintf ( 'Configuration class "%s" not found!' , $ class_name ) , '\DomainException' , __CLASS__ , __METHOD__ , __LINE__ ) ; } } }
Load a config object

@param   string  $class_name
@param   bool    $safe
@return  void
Load a config object