PluginProbe ʕ •ᴥ•ʔ
Ally – Web Accessibility & Usability / 4.1.2
Ally – Web Accessibility & Usability v4.1.2
4.1.2 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 3.0.0 3.0.1 3.0.2 3.0.3 3.1.0 3.2.0 3.3.0 3.4.0 3.5.0 3.5.1 3.5.2 3.6.0 3.7.0 3.8.0 3.8.1 3.9.0 3.9.1 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1
pojo-accessibility / plugin.php
pojo-accessibility Last commit date
assets 2 days ago classes 2 days ago includes 4 months ago modules 2 days ago vendor 2 days ago plugin.php 1 year ago pojo-accessibility.php 2 days ago readme.txt 2 days ago wpml-config.xml 10 years ago
plugin.php
112 lines
1 <?php
2 namespace EA11y;
3
4 use Manager;
5
6 if ( ! defined( 'ABSPATH' ) ) {
7 exit; // Exit if accessed directly.
8 }
9
10 /**
11 * Class Plugin
12 * Main Plugin class
13 */
14 class Plugin {
15 /**
16 * Instance
17 *
18 * @access public
19 * @static
20 *
21 * @var Plugin The single instance of the class.
22 */
23 public static $instance = null;
24
25 /**
26 * Modules Manager
27 * @var null|Manager
28 */
29 public $modules_manager = null;
30
31 /**
32 * class aliases
33 * @access private
34 * @var array
35 */
36 private array $classes_aliases = [];
37
38 /**
39 * Instance
40 *
41 * Ensures only one instance of the class is loaded or can be loaded.
42 *
43 * @access public
44 *
45 * @return Plugin An instance of the class.
46 */
47 public static function instance(): ?Plugin {
48 if ( is_null( self::$instance ) ) {
49 self::$instance = new self();
50 }
51
52 return self::$instance;
53 }
54
55 public function autoload( $class ) {
56 if ( 0 !== strpos( $class, __NAMESPACE__ ) ) {
57 return;
58 }
59
60 $has_class_alias = isset( $this->classes_aliases[ $class ] );
61
62 // Backward Compatibility: Save old class name for set an alias after the new class is loaded
63 if ( $has_class_alias ) {
64 $class_alias_name = $this->classes_aliases[ $class ];
65 $class_to_load = $class_alias_name;
66 } else {
67 $class_to_load = $class;
68 }
69
70 if ( ! class_exists( $class_to_load ) ) {
71 $filename = strtolower(
72 preg_replace(
73 [ '/^' . __NAMESPACE__ . '\\\/', '/([a-z])([A-Z])/', '/_/', '/\\\/' ],
74 [ '', '$1-$2', '-', DIRECTORY_SEPARATOR ],
75 $class_to_load
76 )
77 );
78 $filename = EA11Y_PATH . $filename . '.php';
79
80 if ( is_readable( $filename ) ) {
81 include $filename;
82 }
83 }
84
85 if ( $has_class_alias ) {
86 class_alias( $class_alias_name, $class );
87 }
88 }
89
90 private function includes() {
91 require_once EA11Y_PATH . 'includes/manager.php';
92 $this->modules_manager = new \EA11y\Manager();
93 }
94
95 /**
96 * Plugin class constructor
97 *
98 * Register plugin action hooks and filters
99 *
100 * @access public
101 */
102 public function __construct() {
103 static $autoloader_registered = false;
104 if ( ! $autoloader_registered ) {
105 $autoloader_registered = spl_autoload_register( [ $this, 'autoload' ] );
106 }
107 $this->includes();
108 }
109 }
110 // Instantiate Plugin Class
111 Plugin::instance();
112