app/Services/ModuleService.php
public function all(bool $include_disabled = false): Collection
    {
        return app('cache.array')->rememberForever('all_modules', function (): Collection {
            // Modules have a default status, order etc.
            // We can override these from database settings.
            $module_info = DB::table('module')
                ->get()
                ->mapWithKeys(static function (stdClass $row): array {
                    return [$row->module_name => $row];
                });

            return $this->coreModules()
                ->merge($this->customModules())
                ->map(static function (ModuleInterface $module) use ($module_info): ModuleInterface {
                    $info = $module_info->get($module->name());

                    if ($info instanceof stdClass) {
                        $module->setEnabled($info->status === 'enabled');

                        if ($module instanceof ModuleFooterInterface && $info->footer_order !== null) {
                            $module->setFooterOrder((int) $info->footer_order);
                        }

                        if ($module instanceof ModuleMenuInterface && $info->menu_order !== null) {
                            $module->setMenuOrder((int) $info->menu_order);
                        }

                        if ($module instanceof ModuleSidebarInterface && $info->sidebar_order !== null) {
                            $module->setSidebarOrder((int) $info->sidebar_order);
                        }

                        if ($module instanceof ModuleTabInterface && $info->tab_order !== null) {
                            $module->setTabOrder((int) $info->tab_order);
                        }
                    } else {
                        $module->setEnabled($module->isEnabledByDefault());

                        DB::table('module')->insert([
                            'module_name' => $module->name(),
                            'status'      => $module->isEnabled() ? 'enabled' : 'disabled',
                        ]);
                    }

                    return $module;
                });
        })->filter($this->enabledFilter($include_disabled));
    }
public function all(bool $include_disabled = false): Collection
    {
        return app('cache.array')->rememberForever('all_modules', function (): Collection {
            // Modules have a default status, order etc.
            // We can override these from database settings.
            $module_info = DB::table('module')
                ->get()
                ->mapWithKeys(static function (stdClass $row): array {
                    return [$row->module_name => $row];
                });

            return $this->coreModules()
                ->merge($this->customModules())
                ->map(static function (ModuleInterface $module) use ($module_info): ModuleInterface {
                    $info = $module_info->get($module->name());

                    if ($info instanceof stdClass) {
                        $module->setEnabled($info->status === 'enabled');

                        if ($module instanceof ModuleFooterInterface && $info->footer_order !== null) {
                            $module->setFooterOrder((int) $info->footer_order);
                        }

                        if ($module instanceof ModuleMenuInterface && $info->menu_order !== null) {
                            $module->setMenuOrder((int) $info->menu_order);
                        }

                        if ($module instanceof ModuleSidebarInterface && $info->sidebar_order !== null) {
                            $module->setSidebarOrder((int) $info->sidebar_order);
                        }

                        if ($module instanceof ModuleTabInterface && $info->tab_order !== null) {
                            $module->setTabOrder((int) $info->tab_order);
                        }
                    } else {
                        $module->setEnabled($module->isEnabledByDefault());

                        DB::table('module')->insert([
                            'module_name' => $module->name(),
                            'status'      => $module->isEnabled() ? 'enabled' : 'disabled',
                        ]);
                    }

                    return $module;
                });
        })->filter($this->enabledFilter($include_disabled));
    }
public function all ( bool $ include_disabled = false ) : Collection { return app ( 'cache.array' ) -> rememberForever ( 'all_modules' , function ( ) : Collection { // Modules have a default status, order etc. // We can override these from database settings. $ module_info = DB :: table ( 'module' ) -> get ( ) -> mapWithKeys ( static function ( stdClass $ row ) : array { return [ $ row -> module_name => $ row ] ; } ) ; return $ this -> coreModules ( ) -> merge ( $ this -> customModules ( ) ) -> map ( static function ( ModuleInterface $ module ) use ( $ module_info ) : ModuleInterface { $ info = $ module_info -> get ( $ module -> name ( ) ) ; if ( $ info instanceof stdClass ) { $ module -> setEnabled ( $ info -> status === 'enabled' ) ; if ( $ module instanceof ModuleFooterInterface && $ info -> footer_order !== null ) { $ module -> setFooterOrder ( ( int ) $ info -> footer_order ) ; } if ( $ module instanceof ModuleMenuInterface && $ info -> menu_order !== null ) { $ module -> setMenuOrder ( ( int ) $ info -> menu_order ) ; } if ( $ module instanceof ModuleSidebarInterface && $ info -> sidebar_order !== null ) { $ module -> setSidebarOrder ( ( int ) $ info -> sidebar_order ) ; } if ( $ module instanceof ModuleTabInterface && $ info -> tab_order !== null ) { $ module -> setTabOrder ( ( int ) $ info -> tab_order ) ; } } else { $ module -> setEnabled ( $ module -> isEnabledByDefault ( ) ) ; DB :: table ( 'module' ) -> insert ( [ 'module_name' => $ module -> name ( ) , 'status' => $ module -> isEnabled ( ) ? 'enabled' : 'disabled' , ] ) ; } return $ module ; } ) ; } ) -> filter ( $ this -> enabledFilter ( $ include_disabled ) ) ; }
All modules.

@param bool $include_disabled

@return Collection
@return ModuleInterface[]
All modules .