/
autoload.php
44 lines (35 loc) · 1.19 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
<?php
/**
* Simple autoloader that follow the PHP Standards Recommendation #0 (PSR-0)
*
* @see https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md for more informations.
* @see https://wiki.php.net/rfc/splclassloader#example_implementation
*/
spl_autoload_register(function ($className) {
$namespaces = array(
'SimplePhoto' => array('src', 'test')
);
$className = ltrim($className, '\\');
$fileName = '';
$namespace = '';
if (($lastNsPos = strripos($className, '\\'))) {
$namespace = substr($className, 0, $lastNsPos);
$className = substr($className, $lastNsPos + 1);
$fileName = str_replace('\\', DIRECTORY_SEPARATOR, $namespace)
. DIRECTORY_SEPARATOR;
}
foreach ($namespaces as $ns => $directories) {
if (0 !== strpos($namespace, $ns)) {
continue;
}
foreach ($directories as $directory) {
$file = __DIR__ . DIRECTORY_SEPARATOR . $directory .
DIRECTORY_SEPARATOR . $fileName . $className . '.php';
if (is_file($file)) {
require_once $file;
return true;
}
}
}
return false;
});