public function compileBootableClasses(): void
    {
        // list app root's
        foreach ($this->appRoots as $app) {
            $app .= '/Apps/Controller/' . env_name;
            $files = File::listFiles($app, ['.php'], true);
            foreach ($files as $file) {
                // define full class name with namespace
                $class = 'Apps\Controller\\' . env_name . '\\' . Str::cleanExtension($file);
                // check if class exists (must be loaded over autoloader), boot method exist and this is controller instanceof
                if (class_exists($class) && method_exists($class, 'boot') && is_a($class, 'Ffcms\Core\Arch\Controller', true)) {
                    $this->objects[] = $class;
                }
            }
        }

        // list widget root's
        foreach ($this->widgetRoots as $widget) {
            $widget .= '/Widgets/' . env_name;
            // widgets are packed in directory, classname should be the same with root directory name
            $dirs = Directory::scan($widget, GLOB_ONLYDIR, true);
            if (!Any::isArray($dirs)) {
                continue;
            }

            foreach ($dirs as $instance) {
                $class = 'Widgets\\' . env_name . '\\' . $instance . '\\' . $instance;
                if (class_exists($class) && method_exists($class, 'boot') && is_a($class, 'Ffcms\Core\Arch\Widget', true)) {
                    $this->objects[] = $class;
                }
            }
        }
    }
public function compileBootableClasses(): void
    {
        // list app root's
        foreach ($this->appRoots as $app) {
            $app .= '/Apps/Controller/' . env_name;
            $files = File::listFiles($app, ['.php'], true);
            foreach ($files as $file) {
                // define full class name with namespace
                $class = 'Apps\Controller\\' . env_name . '\\' . Str::cleanExtension($file);
                // check if class exists (must be loaded over autoloader), boot method exist and this is controller instanceof
                if (class_exists($class) && method_exists($class, 'boot') && is_a($class, 'Ffcms\Core\Arch\Controller', true)) {
                    $this->objects[] = $class;
                }
            }
        }

        // list widget root's
        foreach ($this->widgetRoots as $widget) {
            $widget .= '/Widgets/' . env_name;
            // widgets are packed in directory, classname should be the same with root directory name
            $dirs = Directory::scan($widget, GLOB_ONLYDIR, true);
            if (!Any::isArray($dirs)) {
                continue;
            }

            foreach ($dirs as $instance) {
                $class = 'Widgets\\' . env_name . '\\' . $instance . '\\' . $instance;
                if (class_exists($class) && method_exists($class, 'boot') && is_a($class, 'Ffcms\Core\Arch\Widget', true)) {
                    $this->objects[] = $class;
                }
            }
        }
    }
public function compileBootableClasses ( ) : void { // list app root's foreach ( $ this -> appRoots as $ app ) { $ app .= '/Apps/Controller/' . env_name ; $ files = File :: listFiles ( $ app , [ '.php' ] , true ) ; foreach ( $ files as $ file ) { // define full class name with namespace $ class = 'Apps\Controller\\' . env_name . '\\' . Str :: cleanExtension ( $ file ) ; // check if class exists (must be loaded over autoloader), boot method exist and this is controller instanceof if ( class_exists ( $ class ) && method_exists ( $ class , 'boot' ) && is_a ( $ class , 'Ffcms\Core\Arch\Controller' , true ) ) { $ this -> objects [ ] = $ class ; } } } // list widget root's foreach ( $ this -> widgetRoots as $ widget ) { $ widget .= '/Widgets/' . env_name ; // widgets are packed in directory, classname should be the same with root directory name $ dirs = Directory :: scan ( $ widget , GLOB_ONLYDIR , true ) ; if ( ! Any :: isArray ( $ dirs ) ) { continue ; } foreach ( $ dirs as $ instance ) { $ class = 'Widgets\\' . env_name . '\\' . $ instance . '\\' . $ instance ; if ( class_exists ( $ class ) && method_exists ( $ class , 'boot' ) && is_a ( $ class , 'Ffcms\Core\Arch\Widget' , true ) ) { $ this -> objects [ ] = $ class ; } } } }
Find all bootatble instances and set it to object map
@return void
Find all bootatble instances and set it to object map