nookie
I did it all for the nookie
Guten Tag liebe Community,
ich habe folgendes Problem und zwar habe ich mir einen Namepace freundlichen Autoloader gebastelt der auch soweit funktioniert, außer wenn ich ihn in Unterordner einbinde.
Autoloader:
Verzeichnisstruktur:
Im Verzeichnis "library" liegen meine Klassen. Wenn ich den Autloader nun in die index.php im root Verzeichnis einbinde, funktioniert alles einwandfrei. Binde ich jedoch meinen Autoloader in meine index.php im Verzeichnis administrator ein, kann die Klasse nicht geladen werden. Anbei nochmal der Quellcode beider PHP-Dateien.
root index.php
administrator index.php
Fehler:
Hoffe ihr könnt mir helfen. Bin ratlos oder dumm.
ich habe folgendes Problem und zwar habe ich mir einen Namepace freundlichen Autoloader gebastelt der auch soweit funktioniert, außer wenn ich ihn in Unterordner einbinde.
Autoloader:
PHP:
class Autoloader {
const BASE = __DIR__;
const FILE_EXTENSION = '.php';
const DS = DIRECTORY_SEPARATOR;
public static function autoload($class) {
$uri = str_replace("test\\", "", strtolower(str_replace("\\", self::DS, $class))) . self::FILE_EXTENSION;
if(file_exists($uri)) {
require_once($uri);
}
}
}
spl_autoload_register('Autoloader::autoload');
Verzeichnisstruktur:
- Projekt
- administrator
- index.php
- library
- index.php
- administrator
Im Verzeichnis "library" liegen meine Klassen. Wenn ich den Autloader nun in die index.php im root Verzeichnis einbinde, funktioniert alles einwandfrei. Binde ich jedoch meinen Autoloader in meine index.php im Verzeichnis administrator ein, kann die Klasse nicht geladen werden. Anbei nochmal der Quellcode beider PHP-Dateien.
root index.php
PHP:
<?php
namespace Test;
use Test\Library\Klasse;
require_once('init_autoloader.php');
$test = Klasse::testFunktion();
?>
administrator index.php
PHP:
<?php
namespace Test\Administrator;
use Test\Library\Klasse;
require_once(__DIR__ . '/../init_autoloader.php');
$test = Klasse::testFunktion();
?>
Fehler:
Fatal error: Class 'Test\Library\Klasse' not found in D:\Programme\xampp\htdocs\test\administrator\index.php on line 18
Hoffe ihr könnt mir helfen. Bin ratlos oder dumm.