xref: /plugin/gitbacked/loader.php (revision c365e7db171e13fc94915621164a0270ac12db2e)
12762023dSMarkus Hoffrogge<?php
22762023dSMarkus Hoffrogge
32762023dSMarkus Hoffroggespl_autoload_register(
42762023dSMarkus Hoffrogge    /**
52762023dSMarkus Hoffrogge     * Simple PSR-4 autoloader
62762023dSMarkus Hoffrogge     *
72762023dSMarkus Hoffrogge     * Based on PSR-4 example code
82762023dSMarkus Hoffrogge     *
92762023dSMarkus Hoffrogge     * @link http://www.php-fig.org/psr/psr-4/examples/
102762023dSMarkus Hoffrogge     * @param string $class The fully-qualified class name.
112762023dSMarkus Hoffrogge     * @return void
122762023dSMarkus Hoffrogge     */
132762023dSMarkus Hoffrogge    function ($class) {
14*c365e7dbSmhoffrog        $namespaces = ['woolfg\\dokuwiki\\plugin\\gitbacked\\' => __DIR__ . '/classes/'];
152762023dSMarkus Hoffrogge
162762023dSMarkus Hoffrogge        foreach ($namespaces as $prefix => $base_dir) {
172762023dSMarkus Hoffrogge            // does the class use the namespace prefix?
182762023dSMarkus Hoffrogge            $len = strlen($prefix);
192762023dSMarkus Hoffrogge            if (strncmp($prefix, $class, $len) !== 0) {
202762023dSMarkus Hoffrogge                // no, move to the next
212762023dSMarkus Hoffrogge                continue;
222762023dSMarkus Hoffrogge            }
232762023dSMarkus Hoffrogge
242762023dSMarkus Hoffrogge            // get the relative class name
252762023dSMarkus Hoffrogge            $relative_class = substr($class, $len);
262762023dSMarkus Hoffrogge
272762023dSMarkus Hoffrogge            // replace the namespace prefix with the base directory, replace namespace
282762023dSMarkus Hoffrogge            // separators with directory separators in the relative class name, append
292762023dSMarkus Hoffrogge            // with .php
302762023dSMarkus Hoffrogge            $file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
312762023dSMarkus Hoffrogge
322762023dSMarkus Hoffrogge            // if the file exists, require it
332762023dSMarkus Hoffrogge            if (file_exists($file)) {
342762023dSMarkus Hoffrogge                require $file;
352762023dSMarkus Hoffrogge            }
362762023dSMarkus Hoffrogge        }
372762023dSMarkus Hoffrogge    }
382762023dSMarkus Hoffrogge);
39