-
Notifications
You must be signed in to change notification settings - Fork 0
/
autoload.php
34 lines (31 loc) · 1.32 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
<?php
/**
* KanDisheng DemoPHP
* @author Candison November <www.kandisheng.com>
*/
$autoloaDirectory = array(
'class' => 'KanDisheng\\DemoPHP',
'interface' => 'KanDisheng\\DemoPHP'
);
foreach ($autoloaDirectory as $directory => $namespaceRoot) {
$directory = sprintf('%s%s%s', __DIR__, DIRECTORY_SEPARATOR, $directory);
spl_autoload_register(function ($className) use ($directory, $namespaceRoot) {
$directory = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $directory);
$directory = rtrim($directory, '/\\');
$namespaceRoot = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $namespaceRoot);
$namespaceRoot = trim($namespaceRoot, '/\\');
$className = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $className);
$className = trim($className, '/\\');
if (substr($className, 0, strlen($namespaceRoot)) == $namespaceRoot) {
$className = substr($className, strlen($namespaceRoot));
$className = ltrim($className, '/\\');
}
$extensionList = array('php', 'class.php');
foreach ($extensionList as $extension) {
$file = $directory . DIRECTORY_SEPARATOR . $className . '.' . $extension;
if (is_file($file) && is_readable($file)) {
require_once($file);
}
}
});
}