Moving folders
This commit is contained in:
33
api/src/Autoloader.php
Normal file
33
api/src/Autoloader.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
class Autoloader
|
||||
{
|
||||
private string $baseDir;
|
||||
private string $namespace;
|
||||
|
||||
public function __construct(string $namespace, string $baseDir)
|
||||
{
|
||||
$this->namespace = rtrim($namespace, '\\') . '\\';
|
||||
$this->baseDir = rtrim($baseDir, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
|
||||
}
|
||||
|
||||
public function register(): void
|
||||
{
|
||||
spl_autoload_register([$this, 'loadClass']);
|
||||
}
|
||||
|
||||
private function loadClass(string $class): void
|
||||
{
|
||||
if (strpos($class, $this->namespace) !== 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
$relativeClass = substr($class, strlen($this->namespace));
|
||||
$file = $this->baseDir . str_replace('\\', DIRECTORY_SEPARATOR, $relativeClass) . '.php';
|
||||
|
||||
if (file_exists($file)) {
|
||||
require $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user