⊗ppOpNsAu 105 of 107 menu

Autoloading von Klassen in OOP in PHP

Sie wissen bereits, dass wir, um eine Klasse zu verwenden, diese über require einbinden müssen. Wenn ein Projekt sehr viele Klassen hat, führt das zu vielen Einbindungen, die sehr umständlich zu schreiben und schwer zu kontrollieren sind.

Um dieses Problem zu lösen, wurde in PHP Autoloading von Klassen hinzugefügt. Autoloading ermöglicht es PHP, automatisch die Datei mit der Klasse zu laden, wenn im Code versucht wird, auf diese Klasse zuzugreifen. Allerdings werden Klassen nicht einfach so geladen - sie müssen speziell in den Ordnern der Website platziert werden, indem einer bestimmten Konvention für die Benennung von Dateien und Ordnern für Klassen gefolgt wird. Man kann die in PHP integrierte Konvention verwenden oder sich eine eigene ausdenken und dieser folgen.

Lassen Sie uns zunächst die Standardkonvention von PHP betrachten. Diese Konvention besagt, dass wenn wir eine bestimmte Datei mit einer Klasse haben, der Pfad durch die Website-Ordner zu dieser Datei mit dem Namensraum der Datei übereinstimmen muss, und der Dateiname muss mit dem Namen der darin enthaltenen Klasse übereinstimmen. Dabei müssen die Ordnernamen und der Dateiname in Kleinbuchstaben geschrieben sein.

Sehen wir uns ein Beispiel an. Nehmen wir an, wir haben die folgende Klasse:

<?php namespace Core\Admin; class PageController { } ?>

Gemäß der Konvention sollte sich diese Klasse im Ordner /core/admin/ in der Datei pagecontroller.php befinden.

Lassen Sie uns nun in der Datei index.php unsere Klasse verwenden, ohne sie über require einzubinden, sondern indem wir Autoloading verwenden. Dazu sollte am Anfang der Datei, in der Klassen aufgerufen werden, die Funktion spl_autoload_register aufgerufen werden. Machen wir das:

<?php spl_autoload_register(); // Autoloading aktivieren $obj = new Core\Admin\PageController; // Objekt problemlos erstellen ?>

Aktivieren Sie in der Datei index.php das automatische Laden von Klassen. Folgen Sie der Konvention für die Benennung von Ordnern und Dateien und erstellen Sie die Klasse Core\User, die Klasse Core\Admin\Controller und die Klasse Project\User\Data. Erstellen Sie in der Datei index.php Objekte dieser Klassen.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen