PluginProbe
Advanced Ads – Ad Manager & AdSense / 2.0.9
Advanced Ads – Ad Manager & AdSense v2.0.9
2.0.26 2.0.25 2.0.24 2.0.23 2.0.22 2.0.21 1.38.0 1.39.0 1.39.1 1.39.2 1.39.3 1.39.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.40.0 1.40.1 1.40.2 All 348 releases
advanced-ads / includes / load_modules.php
load_modules.php
77 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php // phpcs:ignore WordPress.Files.FileName.NotHyphenatedLowercase
2 use AdvancedAds\Autoloader;
3
4 /**
5 * Class Advanced_Ads_ModuleLoader
6 *
7 * phpcs:disable WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase
8 * phpcs:disable WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid
9 */
10 final class Advanced_Ads_ModuleLoader {
11
12 /**
13 * Hold modules instances.
14 *
15 * @var array
16 */
17 protected static $modules = [];
18
19 /**
20 * Get the Composer autoloader.
21 *
22 * @deprecated 1.46.1
23 *
24 * @return mixed
25 */
26 public static function getLoader() {
27 _deprecated_function( __METHOD__, '1.46.1', '\AdvancedAds\Autoloader::get()->get_autoloader()' );
28 return Autoloader::get()->get_autoloader();
29 }
30
31 /**
32 * Module loader options:
33 * - array 'disabled': Pretty name by (module) dirname
34 *
35 * @param string $path Path to modules.
36 * @param array $options Optional. Module loader options.
37 */
38 public static function loadModules( $path, $options = [] ) {
39 $loader = Autoloader::get()->get_autoloader();
40
41 $isAdmin = is_admin();
42 $disabledModules = (array) ( $options['disabled'] ?? [] );
43
44 // Iterate modules.
45 foreach ( glob( $path . '*/main.php' ) as $module ) {
46 $modulePath = dirname( $module );
47 $moduleName = basename( $modulePath );
48
49 // Configuration is enabled by default (localisation, autoloading and other undemanding stuff).
50 if ( file_exists( $modulePath . '/config.php' ) ) {
51 $config = require $modulePath . '/config.php';
52 // Append autoload classmap.
53 if ( isset( $config['classmap'] ) && is_array( $config['classmap'] ) ) {
54 $loader->addClassmap( $config['classmap'] );
55 }
56 }
57
58 // Admin is enabled by default.
59 if ( $isAdmin && is_readable( $modulePath . '/admin.php' ) ) {
60 include $modulePath . '/admin.php'; // Do not care if this fails.
61 }
62
63 // Skip if disabled.
64 if ( isset( $disabledModules[ $moduleName ] ) ) {
65 continue;
66 }
67
68 self::$modules[ $moduleName ] = $modulePath;
69 }
70
71 // Load modules.
72 foreach ( self::$modules as $name => $path ) {
73 require_once $path . '/main.php';
74 }
75 }
76 }
77