wie funktioniert php autoloader?

8

Öffnet der php class Autoloader eine Datei und sucht nach dem Klassennamen? Ich habe geschaut, wie es tatsächlich umgesetzt wird. Eine Sache, die ich weiß, dass es rekursiv ist? Wenn ich falsch liege, lass es mich wissen

Wie oben erwähnt: Autoloader-Kurzübersicht Wie funktioniert der PHP Autoloader?

  

Der PHP Autoloader sucht rekursiv in definierten Verzeichnissen nach   Klassen-, Merkmals- und Schnittstellendefinitionen. Ohne weiter   Konfiguration das Verzeichnis, in dem sich die anfordernde Datei befindet   als Standardklassenpfad verwendet werden.

     

Dateinamen müssen keiner Konvention entsprechen. Alle Dateien werden durchsucht   für Klassendefinitionen. Dateien, die dem Klassennamen oder ähnlich sind   Ende mit .php oder .inc sind bevorzugt. Wenn dies unterstützt wird, wird PHP Tokenizer   für die zuverlässige Erkennung von Klassendefinitionen verwendet werden.

    
meWantToLearn 16.09.2012, 06:57
quelle

1 Antwort

14

Der PHP-Autoloader ist nur ein Mechanismus zum Einschließen einer Datei , wenn eine -Klasse erstellt wird .

Wenn Sie alle Ihre Klassen in eine Datei schreiben, brauchen Sie keinen Autoloader. Natürlich, wenn Sie OO programmieren, geben Sie jeder Klasse eine eigene Datei, und hier kommt der Autoloader ins Spiel.

Einige Beispiele:

%Vor%

Was passiert, wenn die Autoloader-Klasse erstellt wird, wird die Klassenmethode Classloader als Autoloader registriert.

Wenn eine neue Klasse erstellt wird, prüft die Classloader-Methode zunächst, ob die Datei für die Klasse bereits geladen ist. Wenn nicht, wird der Klasse ein Pfad vorangestellt und um eine Erweiterung erweitert. Wenn die Datei lesbar ist, ist sie enthalten.

Natürlich können Sie das sehr anspruchsvoll machen. Schauen wir uns ein Beispiel mit Namespaces und einem Mapper an. Angenommen, wir befinden uns in der Autoloader-Klasse:

%Vor%

Hier ist der Klassenname in den Namespace-Teil und die Klassennamen-Teile aufgeteilt. Der Namespace-Teil wird in einem Mapper-Array nachgeschlagen, und dieser Pfad wird dann als Include-Pfad für die PHP-Datei verwendet.

Dies sind nur Beispiele, die zeigen, was mit Autoloader gemacht werden kann. Für die Produktion gibt es noch etwas zu tun, zum Beispiel eine Fehlerüberprüfung.

    
JvdBerg 16.09.2012, 08:00
quelle

Tags und Links