⊗ppOpNsAu 105 of 107 menu

Klasside automaatlaadimine OOP-s PHP-s

Te juba teate, et klassi kasutamiseks peame selle ühendama läbi require. Kui projektis on väga palju klasse, tekib palju ühendusi, mida on väga ebamugav kirjutada ja raske kontrollida.

Selle probleemi lahendamiseks lisati PHP-sse klasside automaatlaadimine. Automaatlaadimine võimaldab PHP-l automaatselt laadida klassi faili proovides seda klassi koodis kasutada. Siiski ei laadita klasse iseenesest - need tuleb paigutada saidikaustadesse spetsiaalsel viisil, järgides mõnda kokkulepet failide ja kaustade nimede kohta. Võite kasutada PHP-sse sisseehitatud kokkulepet või mõelda välja oma ja seda kasutada.

Alustuseks vaatame standardset PHP kokkulepet. See kokkulepe seisneb selles, et kui meil on mõni klassi fail, siis tee saidikaustades selleni failini peab ühtima faili nimeruumiga ja faili nimi peab ühtima selles hoitava klassi nimega. Samal ajal peavad kaustade ja faili nimed olema väiketähtedega.

Vaatame näidet. Oletame, et meil on järgmine klass:

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

Kokkuleppe kohaselt peaks see klass asuma kaustas /core/admin/ failis pagecontroller.php.

Kasutame nüüd failis index.php meie klassi, ühendamata seda läbi require, vaid kasutades automaatlaadimist. Selleks tuleb faili alguses, kus kutsutakse välja klasse, kutsuda funktsioon spl_autoload_register. Teeme selle:

<?php spl_autoload_register(); // lülitame sisse automaatlaadimise $obj = new Core\Admin\PageController; // loome rahulikult objekti ?>

Failis index.php lülitage sisse automaatne klasside laadimine. Järgides kokkulepet kaustade ja failide nimede kohta looge klass Core\User, klass Core\Admin\Controller ja klass Project\User\Data. Failis index.php looge nende klasside objektid.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu