tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
260
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    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:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    |
    |--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-Code:
    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)");
      }

    Die TClass sieht so aus:
    PHP-Code:
    namespace MyLib\Sub1;
    class 
    TClass
    {
      ...


    Nun jetzt die Datei, in der der Fehler auftritt, uselib.php:
    PHP-Code:
    require_once("MyLib/MyLib.php");
    use 
    MyLib\Sub1;

    $MyClass = new TClass();   // <-- Fehler! 
    Der Fehler liegt eindeutig bei den Namespaces.
    Folgende Varianten funktionieren auch nicht:
    PHP-Code:
    $MyClass = new MyLib\Sub1\TClass();  // Dann findet __autoload die Datei nicht 
    Vielen Dank im Voraus für jeden Tip!!
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  2. #2
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    Im PHP-Handbuch stehen einige Kommentare darüber.
    http://www.php.net/manual/de/languag...ules.php#98393
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

Ähnliche Themen

  1. namespaces
    Von Nord-Süd-Richtung im Forum PHP
    Antworten: 8
    Letzter Beitrag: 27.11.09, 15:38
  2. namespaces
    Von hmmNaGut im Forum PHP
    Antworten: 10
    Letzter Beitrag: 06.11.08, 17:08
  3. WMI Namespaces
    Von meste im Forum .NET Café
    Antworten: 3
    Letzter Beitrag: 02.07.08, 16:19
  4. Verzeichnissstruktur PHP5 __autoload
    Von R00Ki3 im Forum PHP
    Antworten: 2
    Letzter Beitrag: 30.07.07, 22:29
  5. __autoload() Prob
    Von Headymaster im Forum PHP
    Antworten: 2
    Letzter Beitrag: 28.12.06, 17:51

Stichworte