PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 3.4.1
Admin Columns v3.4.1
7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Autoloader.php
codepress-admin-columns / classes Last commit date
Admin 7 years ago Ajax 7 years ago Autoloader 7 years ago Check 7 years ago Column 7 years ago Deprecated 7 years ago Exception 7 years ago Form 7 years ago Helper 7 years ago Integration 7 years ago ListScreen 7 years ago Message 7 years ago Meta 7 years ago Plugin 7 years ago Preferences 7 years ago Relation 7 years ago Request 7 years ago Response 7 years ago Screen 7 years ago Settings 7 years ago Storage 7 years ago Table 7 years ago ThirdParty 7 years ago Transient 7 years ago API.php 7 years ago Addon.php 7 years ago Admin.php 7 years ago AdminColumns.php 7 years ago ArrayIterator.php 7 years ago Autoloader.php 7 years ago Builder.php 7 years ago Capabilities.php 7 years ago Collection.php 7 years ago Column.php 7 years ago Config.php 7 years ago Dependencies.php 7 years ago Expirable.php 7 years ago Groups.php 7 years ago Helper.php 7 years ago Integration.php 7 years ago IntegrationFactory.php 7 years ago Integrations.php 7 years ago ListScreen.php 7 years ago ListScreenFactory.php 7 years ago ListScreenGroups.php 7 years ago ListScreenPost.php 7 years ago ListScreenWP.php 7 years ago Message.php 7 years ago MetaType.php 7 years ago Middleware.php 7 years ago Plugin.php 7 years ago PluginInformation.php 7 years ago Preferences.php 7 years ago Registrable.php 7 years ago Relation.php 7 years ago Request.php 7 years ago Screen.php 7 years ago ScreenController.php 7 years ago Settings.php 7 years ago Transient.php 7 years ago TypedArrayIterator.php 7 years ago View.php 7 years ago
Autoloader.php
149 lines
1 <?php
2
3 namespace AC;
4
5 use FilesystemIterator;
6
7 class Autoloader {
8
9 /**
10 * @var self;
11 */
12 protected static $instance;
13
14 /**
15 * Register prefixes and their path
16 * @var string[]
17 */
18 protected $prefixes;
19
20 protected function __construct() {
21 $this->prefixes = array();
22
23 spl_autoload_register( array( $this, 'autoload' ) );
24 }
25
26 public static function instance() {
27 if ( null === self::$instance ) {
28 self::$instance = new self();
29 }
30
31 return self::$instance;
32 }
33
34 /**
35 * Register a prefix that should autoload
36 *
37 * @param $prefix string Unique prefix to this set of classes
38 * @param $dir string Path to directory where classes are stored
39 *
40 * @return $this
41 */
42 public function register_prefix( $prefix, $dir ) {
43 $this->prefixes[ $prefix ] = trailingslashit( $dir );
44
45 // make sure that more specific prefixes are checked first
46 krsort( $this->prefixes );
47
48 return $this;
49 }
50
51 /**
52 * @param $class
53 *
54 * @return false|string
55 */
56 protected function get_prefix( $class ) {
57 foreach ( array_keys( $this->prefixes ) as $prefix ) {
58 if ( 0 === strpos( $class, $prefix ) ) {
59 return $prefix;
60 }
61 }
62
63 return false;
64 }
65
66 /**
67 * @param $prefix
68 *
69 * @return false|string
70 */
71 protected function get_path( $prefix ) {
72 if ( ! isset( $this->prefixes[ $prefix ] ) ) {
73 return false;
74 }
75
76 return $this->prefixes[ $prefix ];
77 }
78
79 /**
80 * Get the path from a given namespace that has a registered prefix
81 *
82 * @param string $namespace
83 *
84 * @return false|string
85 */
86 protected function get_path_from_namespace( $namespace ) {
87 $prefix = $this->get_prefix( $namespace );
88
89 if ( ! $prefix ) {
90 return false;
91 }
92
93 $path = $this->get_path( $prefix ) . substr( $namespace, strlen( $prefix ) );
94 $path = str_replace( '\\', '/', $path );
95
96 return $path;
97 }
98
99 /**
100 * @param string $class
101 *
102 * @return bool
103 */
104 public function autoload( $class ) {
105 $path = $this->get_path_from_namespace( $class );
106 $file = realpath( $path . '.php' );
107
108 if ( ! $file ) {
109 return false;
110 }
111
112 require_once $file;
113
114 return true;
115 }
116
117 /**
118 * Get list of all auto-loadable class names from a directory
119 *
120 * @param $namespace
121 *
122 * @return array
123 */
124 public function get_class_names_from_dir( $namespace ) {
125 $path = $this->get_path_from_namespace( $namespace );
126 $path = realpath( $path );
127
128 if ( ! $path ) {
129 return array();
130 }
131
132 $iterator = new FilesystemIterator( $path, FilesystemIterator::SKIP_DOTS );
133 $classes = array();
134
135 /* @var \DirectoryIterator $leaf */
136 foreach ( $iterator as $leaf ) {
137 // Exclude system files
138 if ( 0 === strpos( $leaf->getBasename(), '.' ) ) {
139 continue;
140 }
141
142 if ( 'php' === $leaf->getExtension() ) {
143 $classes[] = $namespace . '\\' . pathinfo( $leaf->getBasename(), PATHINFO_FILENAME );
144 }
145 }
146
147 return $classes;
148 }
149 }