⊗ppOpNsAu 105 of 107 menu

Încărcarea automată a claselor în OOP în PHP

Știți deja că pentru a utiliza o clasă oarecare, trebuie să o includem prin require. Când într-un proiect există foarte multe clase, rezultă multe includeri, care sunt foarte incomode de scris și greu de controlat.

Pentru a rezolva această problemă, în PHP a fost adăugată încărcarea automată a claselor. Încărcarea automată permite PHP-ului să încarce automat fișierul cu o clasă la încercarea de a accesa acea clasă în cod. Totuși, clasele nu se vor încărca așa, de la sine - acestea trebuie plasate în directoarele site-ului într-un mod special, urmând o anumită convenție pentru numele fișierelor și directorelor claselor. Puteți utiliza convenția încorporată în PHP, sau să vă creați propria și să o folosiți.

Să analizăm mai întâi convenția standard PHP. Această convenție constă în faptul că dacă avem un anumit fișier cu o clasă, atunci calea către acel fișier prin directoarele site-ului trebuie să coincidă cu spațiul de nume al fișierului, iar numele fișierului trebuie să coincidă cu numele clasei conținute în el. În același timp, numele directorelor și fișierului trebuie să fie cu litere mici.

Să privim un exemplu. Să presupunem că avem următoarea clasă:

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

Conform convenției, această clasă ar trebui să se afle în directorul /core/admin/ în fișierul pagecontroller.php.

Să utilizăm acum în fișierul index.php clasa noastră, fără a o include prin require, ci folosind încărcarea automată. Pentru aceasta, la începutul fișierului în care sunt apelate clasele, trebuie apelată funcția spl_autoload_register. Să facem asta:

<?php spl_autoload_register(); // activăm încărcarea automată $obj = new Core\Admin\PageController; // creăm calm un obiect ?>

În fișierul index.php activați încărcarea automată a claselor. Urmând convenția pentru numele directoarelor și fișierelor, creați clasa Core\User, clasa Core\Admin\Controller și clasa Project\User\Data. În fișierul index.php creați obiecte ale acestor clase.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge