*/ private static $modules = array(); public static function init(): void { self::$modules = array( new Agentmatica_Content_Module(), new Agentmatica_WooCommerce_Module(), ); foreach ( self::$modules as $module ) { if ( $module->is_active() ) { $module->boot(); } } } /** * @return list */ public static function get_modules(): array { return self::$modules; } /** * @return list */ public static function get_active_modules(): array { return array_values( array_filter( self::$modules, static function ( Agentmatica_Module_Interface $module ): bool { return $module->is_active(); } ) ); } /** * @return array> */ public static function get_abilities(): array { $abilities = array(); foreach ( self::get_active_modules() as $module ) { foreach ( $module->get_abilities() as $name => $definition ) { $abilities[ $name ] = $definition; } } return $abilities; } }