⊗ppOpNsAu 105 of 107 menu

Аутоматско учитавање класа у ООП у PHP

Већ знате да да бисмо користили неку класу, морамо је укључити преко require. Када у пројекту постоји веома много класа, онда настаје много укључења, која је врло незгодно писати и тешко их је контролисати.

За решавање оваквог проблема у PHP је додато аутоматско учитавање класа. Аутоматско учитавање омогућава PHP-у да аутоматски учита фајл са класом при покушају приступа тој класи у коду. Међутим, једноставно тако класе се неће учитавати - неопходно их је распоредити по фасциклама сајта на посебан начин, следећи неки споразум о именовању фајлова и фасцикли класа. Може се користити уграђени споразум у PHP, или осмислити свој и користити га.

Хајде да за почетак размотримо стандардни споразум PHP. Овај споразум се састоји у томе да ако имамо неки фајл са класом, онда пут кроз фасцикле сајта до тог фајла мора да се поклапа са именским простором фајла, а име фајла мора да се поклапа са именом класе која се у њему налази. При томе имена фасцикли и фајла морају бити у малим словима.

Погледајмо на примеру. Претпоставимо да имамо следећу класу:

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

Према споразуму ова класа мора да се налази у фасцикли /core/admin/ у фајлу pagecontroller.php.

Хајде сада у фајлу index.php да искористимо нашу класу, без укључења преко require, већ користећи аутоматско учитавање. За то на почетку фајла, у ком се позивају класе, треба позвати функцију spl_autoload_register. Урадимо то:

<?php spl_autoload_register(); // укључујемо аутоматско учитавање $obj = new Core\Admin\PageController; // мирно креирамо објекат ?>

У фајлу index.php укључите аутоматско учитавање класа. Следећи споразум о именовању фасцикли и фајлова направите класу Core\User, класу Core\Admin\Controller и класу Project\User\Data. У фајлу index.php креирајте објекте ових класа.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј