|
@@ -0,0 +1,42 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace ePHPic\Autload;
|
|
|
+
|
|
|
+class Autoloader
|
|
|
+{
|
|
|
+ private static $baseDir = "some/where/in/my/app";
|
|
|
+ private static $map = [
|
|
|
+ ];
|
|
|
+
|
|
|
+ public static function resolve($class, $path = null)
|
|
|
+ {
|
|
|
+ if(isset(static::$map[$class]))
|
|
|
+ {
|
|
|
+ return static::$baseDir . "/" . static::$map[$class] . ($path ? "/$path" : "") . ".php";
|
|
|
+ }
|
|
|
+ $lastBackslashPos = strrpos($class, '\\');
|
|
|
+ if ($lastBackslashPos !== false) {
|
|
|
+ $path = substr($class, $lastBackslashPos+1, strlen($class) - 1) . ($path ? "/$path" : "");
|
|
|
+ $class = substr($class, 0, $lastBackslashPos);
|
|
|
+ return static::resolve($class, $path);
|
|
|
+ }
|
|
|
+
|
|
|
+ return static::$baseDir . "/" . str_replace("\\","/",$class) . ($path ? "/$path" : "") . ".php";
|
|
|
+ }
|
|
|
+ public static function autoload($class)
|
|
|
+ {
|
|
|
+ $filePath = static::resolve($class);
|
|
|
+ if(@file_exists($filePath))
|
|
|
+ {
|
|
|
+ include_once $filePath;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public static function register()
|
|
|
+ {
|
|
|
+ spl_autoload_register(
|
|
|
+ [static::class, "autoload"],
|
|
|
+ true,
|
|
|
+ true
|
|
|
+ );
|
|
|
+ }
|
|
|
+}
|