⊗ppOpNsAu 105 of 107 menu

Automatické načítanie tried v OOP v PHP

Už viete, že aby sme mohli použiť nejakú triedu, musíme ju pripojiť cez require. Keď je v projekte veľmi veľa tried, výsledkom je veľa pripojení, ktoré je veľmi nepohodlné písať a ťažko kontrolovať.

Na vyriešenie tohto problému bola v PHP pridaná automatické načítanie tried. Automatické načítanie umožňuje PHP automaticky načítať súbor s triedou pri pokuse o prístup k tejto triede v kóde. Avšak, jednoducho tak triedy sa nenačítajú - je potrebné ich umiestniť do priečinkov stránky špeciálnym spôsobom, podľa nejakej dohody o názvoch súborov a priečinkov tried. Môžete používať dohodu zabudovanú v PHP, alebo si vymyslieť vlastnú a používať ju.

Poďme na začiatok rozobrať štandardnú dohodu PHP. Táto dohoda spočíva v tom, že ak máme nejaký súbor s triedou, tak cesta cez priečinky stránky k tomuto súboru musí zodpovedať mennému priestoru súboru, a názov súboru musí zodpovedať názvu triedy, ktorá sa v ňom nachádza. Pritom názvy priečinkov a súboru musia byť v malých písmenách.

Pozrime sa na príklade. Nech máme nasledujúcu triedu:

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

Podľa dohody by mala byť táto trieda umiestnená v priečinku /core/admin/ v súbore pagecontroller.php.

Poďme teraz v súbore index.php použiť našu triedu, bez pripojenia cez require, ale pomocou automatického načítania. Na to na začiatku súboru, v ktorom sa volajú triedy, by sa mala volať funkcia spl_autoload_register. Urobme to:

<?php spl_autoload_register(); // zapneme automatické načítanie $obj = new Core\Admin\PageController; // pokojne vytvoríme objekt ?>

V súbore index.php zapnite automatické načítanie tried. Podľa dohody o názvoch priečinkov a súborov vytvorte triedu Core\User, triedu Core\Admin\Controller a triedu Project\User\Data. V súbore index.php vytvorte objekty týchto tried.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť