generated from Pierre-Lannoy/wp-plugin-boilerplate
-
Notifications
You must be signed in to change notification settings - Fork 1
/
autoload.php
47 lines (46 loc) · 1.53 KB
/
autoload.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
/**
* Autoload for Traffic.
*
* @package Bootstrap
* @author Pierre Lannoy <https://pierre.lannoy.fr/>.
* @since 1.0.0
*/
spl_autoload_register(
function ( $class ) {
$classname = $class;
$filepath = __DIR__ . '/';
if ( strpos( $classname, 'Traffic\\' ) === 0 ) {
while ( strpos( $classname, '\\' ) !== false ) {
$classname = substr( $classname, strpos( $classname, '\\' ) + 1, 1000 );
}
$filename = 'class-' . str_replace( '_', '-', strtolower( $classname ) ) . '.php';
if ( strpos( $class, 'Traffic\System\\' ) === 0 ) {
$filepath = TRAFFIC_INCLUDES_DIR . 'system/';
}
if ( strpos( $class, 'Traffic\Plugin\Feature\\' ) === 0 ) {
$filepath = TRAFFIC_INCLUDES_DIR . 'features/';
} elseif ( strpos( $class, 'Traffic\Plugin\\' ) === 0 ) {
$filepath = TRAFFIC_INCLUDES_DIR . 'plugin/';
} elseif ( strpos( $class, 'Traffic\Library\\' ) === 0 ) {
$filepath = TRAFFIC_VENDOR_DIR;
} elseif ( strpos( $class, 'Traffic\Library\\' ) === 0 ) {
$filepath = TRAFFIC_VENDOR_DIR;
} elseif ( strpos( $class, 'Traffic\Integration\\' ) === 0 ) {
$filepath = TRAFFIC_INCLUDES_DIR . 'integrations/';
} elseif ( strpos( $class, 'Traffic\API\\' ) === 0 ) {
$filepath = TRAFFIC_INCLUDES_DIR . 'api/';
}
if ( strpos( $filename, '-public' ) !== false ) {
$filepath = TRAFFIC_PUBLIC_DIR;
}
if ( strpos( $filename, '-admin' ) !== false ) {
$filepath = TRAFFIC_ADMIN_DIR;
}
$file = $filepath . $filename;
if ( file_exists( $file ) ) {
include_once $file;
}
}
}
);