| Server IP : 121.121.20.254 / Your IP : 216.73.217.51 Web Server : Microsoft-IIS/10.0 System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64 User : IUSR ( 0) PHP Version : 8.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/inetpub/wwwroot/6pocketz/wp-content/plugins/angie/includes/ |
Upload File : |
<?php
namespace Angie;
use Angie\Classes\Module_Base;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
final class Manager {
/**
* @var Module_Base[]
*/
private array $modules = [];
public static function get_module_list(): array {
return [
'AngieApp', // must be first for admin menu.
'ElementorCore',
'ConsentManager',
'AngieAgents',
'AcfRestApi',
'ThemeManager',
'PluginManager',
'Navigation',
'AngieSettings',
'CodeSnippets',
'ElementorPro',
'Notifications',
'Sidebar',
'AngieStyles',
'PageTemplates',
'SuperAdmin',
];
}
/**
* @codeCoverageIgnore
*/
public function __construct() {
$modules = self::get_module_list();
foreach ( $modules as $module_name ) {
$class_name = str_replace( '-', ' ', $module_name );
$class_name = str_replace( ' ', '', ucwords( $class_name ) );
$class_name = __NAMESPACE__ . '\\Modules\\' . $class_name . '\Module';
/** @var Module_Base $class_name */
if ( $class_name::is_active() ) {
$this->modules[ $module_name ] = $class_name::instance();
}
}
}
public function get_modules( string $module_name = '' ) {
if ( $module_name ) {
return $this->modules[ $module_name ] ?? null;
}
return $this->modules;
}
}