⊗ppOpNsAu 105 of 107 menu

Autolasting av klasser i OOP i PHP

Du vet allerede at for å bruke en klasse, må vi inkludere den via require. Når et prosjekt har veldig mange klasser, blir det mange inkluderinger, som er veldig upraktiske å skrive og vanskelige å kontrollere.

For å løse dette problemet ble autolasting av klasser lagt til i PHP. Autolasting gjør at PHP automatisk kan laste en fil med en klasse når det forsøkes å bruke denne klassen i koden. Imidlertid vil ikke klassene lastes av seg selv - de må plasseres i mappene på nettstedet på en spesiell måte, ved å følge en eller annen konvensjon for navn på filer og mapper for klasser. Du kan bruke PHP's innebygde konvensjon, eller finne på din egen og bruke den.

La oss først se på standardkonvensjonen i PHP. Denne konvensjonen går ut på at hvis vi har en fil med en klasse, så skal stien gjennom nettstedets mapper til denne filen samsvare med filens navnerom, og filnavnet skal samsvare med navnet på klassen som ligger i den. Samtidig skal mappe- og filnavn være med små bokstaver.

La oss se på et eksempel. La oss si at vi har følgende klasse:

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

I følge konvensjonen skal denne klassen ligge i mappen /core/admin/ i filen pagecontroller.php.

La oss nå i filen index.php bruke klassen vår, uten å inkludere den via require, men ved å bruke autolasting. For å gjøre dette, bør funksjonen spl_autoload_register kalles på starten av filen der klassene brukes. La oss gjøre det:

<?php spl_autoload_register(); // slår på autolasting $obj = new Core\Admin\PageController; // trygt oppretter vi et objekt ?>

I filen index.php slå på automatisk lasting av klasser. Følg konvensjonen for navn på mapper og filer og lag klassen Core\User, klassen Core\Admin\Controller og klassen Project\User\Data. I filen index.php opprett objekter av disse klassene.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis