⊗ppOpNsAu 105 of 107 menu

Automatsko učitavanje klasa u OOP u PHP

Već znate da da biste koristili neku klasu, moramo je uključiti preko require. Kada u projektu ima mnogo klasa, dobija se mnogo povezivanja, koja je vrlo nezgodno pisati i teško ih je kontrolisati.

Za rešavanje ovog problema u PHP je dodata automatska zagušnja klasa. Automatsko učitavanje dozvoljava PHP-u da automatski učita fajl sa klasom prilikom pokušaja pristupa toj klasi u kodu. Međutim, klase se neće same učitatiti - potrebno ih je smestiti po folderima sajta na poseban način, prateći neki dogovor o imenima fajlova i foldera klasa. Možete koristiti ugrađeni dogovor u PHP-u, ili smisliti svoj i koristiti ga.

Hajde da za početak analiziramo standardni dogovor PHP-a. Ovaj dogovor se sastoji u tome da ako imamo neki fajl sa klasom, onda putanja po folderima sajta do tog fajla mora da se poklapa sa imenskim prostorom fajla, a ime fajla mora da se poklapa sa imenom klase koja se u njemu nalazi. Pritim imena foldera i fajla moraju biti u malim slovima.

Pogledajmo na primeru. Pretpostavimo da imamo sledeću klasu:

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

Prema dogovoru ova klasa treba da se nalazi u folderu /core/admin/ u fajlu pagecontroller.php.

Hajde sada u fajlu index.php da koristimo našu klasu, bez povezivanja preko require, već koristeći automatsko učitavanje. Za ovo na početku fajla, u kojem se pozivaju klase, treba pozvati funkciju spl_autoload_register. Uradimo to:

<?php spl_autoload_register(); // uključujemo automatsko učitavanje $obj = new Core\Admin\PageController; // mirno kreiramo objekat ?>

U fajlu index.php uključite automatsko učitavanje klasa. Prateći dogovor o imenima foldera i fajlova napravite klasu Core\User, klasu Core\Admin\Controller i klasu Project\User\Data. U fajlu index.php kreirajte objekte ovih klasa.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij