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 | ); |