|
1
|
|
|
<?php |
|
2
|
|
|
/** |
|
3
|
|
|
* An example of a project-specific implementation. |
|
4
|
|
|
* |
|
5
|
|
|
* After registering this autoload function with SPL, the following line |
|
6
|
|
|
* would cause the function to attempt to load the \Foo\Bar\Baz\Qux class |
|
7
|
|
|
* from /path/to/project/src/Baz/Qux.php: |
|
8
|
|
|
* |
|
9
|
|
|
* new \Foo\Bar\Baz\Qux; |
|
10
|
|
|
* |
|
11
|
|
|
* @param string $class The fully-qualified class name. |
|
12
|
|
|
* @return void |
|
13
|
|
|
*/ |
|
14
|
|
|
spl_autoload_register( |
|
15
|
|
|
function($class) { |
|
16
|
|
|
// project-specific namespace prefix |
|
17
|
|
|
|
|
18
|
1 |
|
$prefix = 'Vesihiisi\\'; |
|
19
|
|
|
// base directory for the namespace prefix |
|
20
|
1 |
|
$base_dir = __DIR__.'/src/'; |
|
21
|
|
|
// does the class use the namespace prefix? |
|
22
|
1 |
|
$len = strlen($prefix); |
|
23
|
|
|
|
|
24
|
|
|
// get the relative class name |
|
25
|
1 |
|
$relative_class = substr($class, $len); |
|
26
|
|
|
// replace the namespace prefix with the base directory, replace namespace |
|
27
|
|
|
// separators with directory separators in the relative class name, append |
|
28
|
|
|
// with .php |
|
29
|
1 |
|
$file = $base_dir.str_replace('\\', '/', $relative_class).'.php'; |
|
30
|
|
|
// if the file exists, require it |
|
31
|
1 |
|
if (file_exists($file)) { |
|
32
|
1 |
|
include $file; |
|
33
|
1 |
|
} |
|
34
|
|
|
} |
|
35
|
|
|
); |