-1

Ich versuche, eine Klasse automatisch zu laden, aber mein Autoloader scheint nicht richtig zu registrieren.PHP - Autoloader funktioniert nicht bei der Registrierung EDIT

Folder/File structure:

  • zest.php
  • Osten
    • a.thing.php

**zest.php**:

<?php 
    $aThing = new a; 
    $aThing->test(); 

    function my_autoloader($class) { 
     include 'aest/' . $class . '.thing.php'; 
    } 

    spl_autoload_register('my_autoloader'); 
?> 

**a.thing.php**:

<?php 
class a { 
    public function test() { 
     echo 'test'; 
    } 
} 

ich von php.net gerade dieses Beispiel gezogen, was mit ihm los?

Die Autoloader-Funktion wird überhaupt nicht aufgerufen.

Nicht einmal, wenn es sich um eine anoymous Funktion ist:

spl_autoload_register(function($class) { 
    echo 'calling '.$class; 
    include 'aest/'.$class . '.test.php'; 
}); 
+0

Es sollte funktionieren. Haben Sie Fehler? Versuchen Sie es zu debuggen, sind Sie auf dem richtigen Weg? Tun Sie eine 'var_dump (getcwd());' in Ihrem Autoload .. – vaso123

+0

@lolka_bolka 'Klasse '' nicht gefunden ...' ist der Fehler. 'var_dump (getcwd());', tut nichts, was bedeutet, dass das Register nicht funktioniert, aber ich kann nicht herausfinden warum; nicht einmal eine anonyme Funktion registriert ... – kgongonowdoe

+0

Ich glaube du hast einen Tippfehler in 'include' aest/'. $ Klasse. '.thing.php'; 'es muss sein' include 'oest /'. $ Klasse. '.thing.php'; ' – MAZux

Antwort

0

Ughh ... spl_autoload_register('AutoLoader') hat vor jedem Versuch, genannt werden, um eine Klasse zu instanziieren, die gemacht wird, werden muss automatisch geladen.