⊗ppOpNsAu 105 of 107 menu

Autoloadning av klasser i OOP i PHP

Du vet redan att för att använda någon klass måste vi inkludera den via require. När ett projekt har väldigt många klasser blir det många inkluderingar som är väldigt obekväma att skriva och svåra att kontrollera.

För att lösa detta problem lades autoloadning av klasser till i PHP. Autoloadning låter PHP automatiskt ladda filen med en klass när försök görs att komma åt den klassen i koden. Men klasserna laddas inte automatiskt - de måste placeras i webbplatsens mappar på ett speciellt sätt, enligt någon konvention för namngivning av filer och mappar för klasser. Du kan använda den inbyggda konventionen i PHP, eller komma på din egen och använda den.

Låt oss först titta på standardkonventionen i PHP. Denna konvention innebär att om vi har en fil med en klass, så måste sökvägen genom webbplatsens mappar till denna fil stämma överens med filens namnområde, och filnamnet måste stämma överens med namnet på klassen som finns i den. Dessutom måste mappnamn och filnamn skrivas med små bokstäver.

Låt oss titta på ett exempel. Låt oss säga att vi har följande klass:

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

Enligt konventionen ska denna klass placeras i mappen /core/admin/ i filen pagecontroller.php.

Låt oss nu i filen index.php använda vår klass, utan att inkludera den via require, utan genom att använda autoloadning. För att göra detta, i början av filen där klasserna anropas, bör funktionen spl_autoload_register anropas. Låt oss göra det:

<?php spl_autoload_register(); // aktiverar autoloadning $obj = new Core\Admin\PageController; // skapar lugnt ett objekt ?>

I filen index.php, aktivera automatisk laddning av klasser. Enligt konventionen för namngivning av mappar och filer, skapa klassen Core\User, klassen Core\Admin\Controller och klassen Project\User\Data. I filen index.php, skapa objekt av dessa klasser.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa