xref: /plugin/gitbacked/loader.php (revision 2762023dfb29a64197cb442f664aa321f9f5bc87)
1<?php
2
3spl_autoload_register(
4    /**
5     * Simple PSR-4 autoloader
6     *
7     * Based on PSR-4 example code
8     *
9     * @link http://www.php-fig.org/psr/psr-4/examples/
10     * @param string $class The fully-qualified class name.
11     * @return void
12     */
13    function ($class) {
14        $namespaces = array(
15            'woolfg\\dokuwiki\\plugin\\gitbacked\\' => __DIR__ . '/classes/'
16        );
17
18        foreach ($namespaces as $prefix => $base_dir) {
19            // does the class use the namespace prefix?
20            $len = strlen($prefix);
21            if (strncmp($prefix, $class, $len) !== 0) {
22                // no, move to the next
23                continue;
24            }
25
26            // get the relative class name
27            $relative_class = substr($class, $len);
28
29            // replace the namespace prefix with the base directory, replace namespace
30            // separators with directory separators in the relative class name, append
31            // with .php
32            $file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
33
34            // if the file exists, require it
35            if (file_exists($file)) {
36                require $file;
37            }
38        }
39    }
40);
41