⊗ppOpNsAu 105 of 107 menu

Klasu automātiskā ielāde OOP PHP

Jūs jau zināt, ka, lai izmantotu kādu klasi, mums tas jāpievieno caur require. Kad projektā ir ļoti daudz klases, tad rodas daudz pievienojumu, kurus ir ļoti neērti rakstīt un grūti kontrolēt.

Lai atrisinātu šādu problēmu, PHP tika pievienota klasu automātiskā ielāde. Automātiskā ielāde ļauj PHP automātiski ielādēt failu ar klasi, mēģinot piekļūt šai klasei kodā. Tomēr, vienkārši tā klases netiks ielādētas - tās ir jāizvieto pa vietnes mapēm īpašā veidā, ievērojot kādu vienošanos par failu un mapju nosaukumiem klasēm. Var izmantot iebūvēto PHP vienošanos, vai izdomāt savu un izmantot to.

Sākumā apskatīsim standarta PHP vienošanos. Šī vienošanās ir tāda, ka ja mums ir kāds fails ar klasi, tad ceļš pa vietnes mapēm uz šo failu ir jāsakrīt ar faila nosaukumu telpu, un faila nosaukumam ir jāsakrīt ar tajā glabājamās klases nosaukumu. Turklāt mapju un faila nosaukumiem jābūt mazajos burtos.

Apskatīsim piemērā. Pieņemsim, ka mums ir sekojoša klase:

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

Saskaņā ar vienošanos šai klasei jāatrodas mapē /core/admin/ failā pagecontroller.php.

Tagad failā index.php izmantosim mūsu klasi, nepievienojot to caur require, bet izmantojot automātisko ielādi. Lai to izdarītu, faila sākumā, kurā tiek izsauktas klases, ir jāizsauc funkcija spl_autoload_register. Izdarīsim to:

<?php spl_autoload_register(); // ieslēdzam automātisko ielādi $obj = new Core\Admin\PageController; // mierīgi izveidojam objektu ?>

Failā index.php ieslēdziet automātisko klasu ielādi. Ievērojot vienošanos par nosaukumiem mapēm un failiem, izveidojiet klasi Core\User, klasi Core\Admin\Controller un klasi Project\User\Data. Failā index.php izveidojiet šo klašu objektus.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt