⊗ppOpNsAu 105 of 107 menu

Autoloaden van klassen in OOP in PHP

Je weet al dat om gebruik te maken van een klasse, we deze moeten includeren via require. Wanneer een project heel veel klassen heeft, resulteert dat in veel includes, die erg onhandig zijn om te schrijven en moeilijk te controleren.

Om dit probleem op te lossen is in PHP autoloading van klassen toegevoegd. Autoloading staat PHP toe om automatisch het bestand met een klasse te laden bij een poging om die klasse aan te roepen in de code. Echter, klassen worden niet zomaar geladen - ze moeten op een speciale manier in de mappen van de website worden geplaatst, volgens een bepaalde conventie voor de namen van bestanden en mappen van klassen. Je kunt de ingebouwde conventie van PHP gebruiken, of je eigen bedenken en die gebruiken.

Laten we eerst de standaard conventie van PHP bespreken. Deze conventie houdt in dat als we een bestand met een klasse hebben, het pad via de mappen van de website naar dat bestand moet overeenkomen met de namespace van het bestand, en de bestandsnaam moet overeenkomen met de naam van de daarin opgeslagen klasse. Hierbij moeten de namen van de mappen en het bestand in kleine letters zijn.

Laten we een voorbeeld bekijken. Stel we hebben de volgende klasse:

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

Volgens de conventie moet deze klasse zich bevinden in de map /core/admin/ in het bestand pagecontroller.php.

Laten we nu in het bestand index.php onze klasse gebruiken, zonder deze te includeren via require, maar door gebruik te maken van autoloading. Hiervoor moet in het begin van het bestand, waarin de klassen worden aangeroepen, de functie spl_autoload_register worden aangeroepen. Laten we dit doen:

<?php spl_autoload_register(); // schakel autoloading in $obj = new Core\Admin\PageController; // creëer gerust een object ?>

Schakel in het bestand index.php automatisch laden van klassen in. Volg de conventie voor namen van mappen en bestanden en maak de klasse Core\User, de klasse Core\Admin\Controller en de klasse Project\User\Data. Creëer in het bestand index.php objecten van deze klassen.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren