Hallo an alle,
ich habe ein Problem mit der __autoload-Funktion und Namespaces.
Die Datei wird zwar eingebunden, aber die Klasse wird wegen den Namespaces nicht gefunden. Wenn ich diese entferne, klappt alles!
Da ich eine Art Bibliothek/Framework entwickle, ist die Ordnerstruktur anders:
Die MyLib.php sieht so aus:
Die TClass sieht so aus:
Nun jetzt die Datei, in der der Fehler auftritt, uselib.php:
Der Fehler liegt eindeutig bei den Namespaces.
Folgende Varianten funktionieren auch nicht:
Vielen Dank im Voraus für jeden Tip!!
ich habe ein Problem mit der __autoload-Funktion und Namespaces.
Die Datei wird zwar eingebunden, aber die Klasse wird wegen den Namespaces nicht gefunden. Wenn ich diese entferne, klappt alles!
Da ich eine Art Bibliothek/Framework entwickle, ist die Ordnerstruktur anders:
Code:
|
|--uselib.php // Hier werden die Klassen benutzt, Fehler!
|
|--MyLib
|
|--Sub1
|
|--TClass.php
|--MyLib.php // Definiert die __autoload()-Funktion
Die MyLib.php sieht so aus:
PHP:
namespace MyLib;
function __autoload($classname)
{
if (file_exists(__DIR__."/Sub1/".$classname.".php"))
{
require_once(__DIR__."/Sub1/".$classname.".php");
}
else
{
exit("FILE NOT FOUND IN __autoload ($classname)");
}
}
PHP:
namespace MyLib\Sub1;
class TClass
{
...
}
Nun jetzt die Datei, in der der Fehler auftritt, uselib.php:
PHP:
require_once("MyLib/MyLib.php");
use MyLib\Sub1;
$MyClass = new TClass(); // <-- Fehler!
Folgende Varianten funktionieren auch nicht:
PHP:
$MyClass = new MyLib\Sub1\TClass(); // Dann findet __autoload die Datei nicht
Vielen Dank im Voraus für jeden Tip!!