public static function bootstrap($enabled_addons = null) {
        // Load the addons from the config if they aren't passed in.
        if (!is_array($enabled_addons)) {
            $enabled_addons = config('addons', array());
        }
        // Reformat the enabled array into the form: array('addon_key' => 'addon_key')
        $enabled_keys = array_keys(array_change_key_case(array_filter($enabled_addons)));
        $enabled_keys = array_combine($enabled_keys, $enabled_keys);
        self::$enabledKeys = $enabled_keys;
        self::$classMap = null; // invalidate so it will rebuild

        // Enable the addon autoloader.
        spl_autoload_register(array(get_class(), 'autoload'), true, true);

        // Bind all of the addon plugin events now.
        foreach (self::enabled() as $addon) {
            if (!isset($addon[self::K_CLASSES])) {
                continue;
            }

            foreach ($addon[self::K_CLASSES] as $class_name => $class_path) {
                if (str_ends($class_name, 'plugin')) {
                    Event::bindClass($class_name);
                } elseif (str_ends($class_name, 'hooks')) {
                    // Vanilla 2 used hooks files for themes and applications.
                    $basename = ucfirst(rtrim_substr($class_name, 'hooks'));
                    deprecated($basename.'Hooks', $basename.'Plugin');
                    Event::bindClass($class_name);
                }
            }
        }

        Event::bind('bootstrap', function () {
            // Start each of the enabled addons.
            foreach (self::enabled() as $key => $value) {
                static::startAddon($key);
            }
        });
    }
public static function bootstrap($enabled_addons = null) {
        // Load the addons from the config if they aren't passed in.
        if (!is_array($enabled_addons)) {
            $enabled_addons = config('addons', array());
        }
        // Reformat the enabled array into the form: array('addon_key' => 'addon_key')
        $enabled_keys = array_keys(array_change_key_case(array_filter($enabled_addons)));
        $enabled_keys = array_combine($enabled_keys, $enabled_keys);
        self::$enabledKeys = $enabled_keys;
        self::$classMap = null; // invalidate so it will rebuild

        // Enable the addon autoloader.
        spl_autoload_register(array(get_class(), 'autoload'), true, true);

        // Bind all of the addon plugin events now.
        foreach (self::enabled() as $addon) {
            if (!isset($addon[self::K_CLASSES])) {
                continue;
            }

            foreach ($addon[self::K_CLASSES] as $class_name => $class_path) {
                if (str_ends($class_name, 'plugin')) {
                    Event::bindClass($class_name);
                } elseif (str_ends($class_name, 'hooks')) {
                    // Vanilla 2 used hooks files for themes and applications.
                    $basename = ucfirst(rtrim_substr($class_name, 'hooks'));
                    deprecated($basename.'Hooks', $basename.'Plugin');
                    Event::bindClass($class_name);
                }
            }
        }

        Event::bind('bootstrap', function () {
            // Start each of the enabled addons.
            foreach (self::enabled() as $key => $value) {
                static::startAddon($key);
            }
        });
    }
public static function bootstrap ( $ enabled_addons = null ) { // Load the addons from the config if they aren't passed in. if ( ! is_array ( $ enabled_addons ) ) { $ enabled_addons = config ( 'addons' , array ( ) ) ; } // Reformat the enabled array into the form: array('addon_key' => 'addon_key') $ enabled_keys = array_keys ( array_change_key_case ( array_filter ( $ enabled_addons ) ) ) ; $ enabled_keys = array_combine ( $ enabled_keys , $ enabled_keys ) ; self :: $ enabledKeys = $ enabled_keys ; self :: $ classMap = null ; // invalidate so it will rebuild // Enable the addon autoloader. spl_autoload_register ( array ( get_class ( ) , 'autoload' ) , true , true ) ; // Bind all of the addon plugin events now. foreach ( self :: enabled ( ) as $ addon ) { if ( ! isset ( $ addon [ self :: K_CLASSES ] ) ) { continue ; } foreach ( $ addon [ self :: K_CLASSES ] as $ class_name => $ class_path ) { if ( str_ends ( $ class_name , 'plugin' ) ) { Event :: bindClass ( $ class_name ) ; } elseif ( str_ends ( $ class_name , 'hooks' ) ) { // Vanilla 2 used hooks files for themes and applications. $ basename = ucfirst ( rtrim_substr ( $ class_name , 'hooks' ) ) ; deprecated ( $ basename . 'Hooks' , $ basename . 'Plugin' ) ; Event :: bindClass ( $ class_name ) ; } } } Event :: bind ( 'bootstrap' , function ( ) { // Start each of the enabled addons. foreach ( self :: enabled ( ) as $ key => $ value ) { static :: startAddon ( $ key ) ; } } ) ; }
Start up the addon framework.

@param array $enabled_addons An array of enabled addons.
Start up the addon framework .