Autoload endet mit Fatal Error

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Autoload endet mit Fatal Error

    Hi Leute,

    Hier wird im ersten Kommentar eine interessante Methode bezüglich Autoload beschrieben: PHP: spl_autoload_register - Manual
    Also, dachte ich mir, probier ich das aus:

    Meine Verzeichnisstruktur in diesem Beispiel:
    \index.php
    \_includes\testklasse.php

    -------------------------------

    index.php:

    PHP-Code:
    <?php // Autoloader initialisieren
    spl_autoload_extensions('.php');
    spl_autoload_register();

    // Versuch...
    $go = new _includesBACKSLASHtestklasse?>
    die letzte Zeile lautet: $go = new _includes\testklasse; ?> (sie wird im PHP-Tag hier im Forum nicht richtig dargestellt)

    \includes\testklasse.php:
    PHP-Code:
    <?php
    namespace _includes;

    class 
    testklasse {
        
        public function 
    __construct()
        {
            echo 
    'test';
        }
    }
    ?>
    Beim Aufruf der index.php endet das ganze mit : Fatal error: Class '_includes\testklasse' not found
    ein $go = new \_includes\testklasse; scheitert ebenso...

    Ein Aufruf von var_dump(spl_autoload_register()); liefert ein TRUE.

    Wo liegt denn hier nun mein Denkfehler?
    Zuletzt geändert von Chrissi007; 26.11.2015, 11:03.
    Grüße, Chrissi
    Our Dreams are Wings

  • #2
    Musst dein _includes-Verzeichnis dem Include-Pfad hinzufügen, damit das so funktioniert.

    Aber ich würde das nicht in der Form nutzen, weil man den Include-Pfad im Grunde überhaupt nicht braucht.

    Eine brauchbare Kurzversion für einen Autoloader ist das hier:

    PHP-Code:
    spl_autoload_register(function ($className) {
        
    $path __DIR__ '/src/' str_replace('\\''/'$className) . '.php';

        if (
    is_readable($path)) {
            require 
    $path;
        }
    }); 
    Sucht eine Klasse Foo\Bar\Baz in ./src/Foo/Bar/Baz.php.

    Kommentar


    • #3
      Alles klar, danke soweit!
      Grüße, Chrissi
      Our Dreams are Wings

      Kommentar

      Lädt...
      X