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