⊗ppOpNsAu 105 of 107 menu

Klasių automatinis įkėlimas OOP PHP

Jūs jau žinote, kad norint panaudoti bet kurią klasę, turime ją prijungti per require. Kai projekte yra labai daug klasių, susidaro daug prijungimų, kuriuos labai nepatogu rašyti ir sunku kontroliuoti.

Norint išspręsti šią problemą, PHP buvo pridėtas automatinis klasių įkėlimas. Automatinis įkėlimas leidžia PHP automatiškai įkelti failą su klase bandant kreiptis į šią klasę kode. Tačiau, klasės tiesiog taip neįsikels - jas reikia patalpinti pagal svetainės katalogus specialiu būdu, vadovaujantis kokiu nors susitarimu dėl failų ir katalogų pavadinimų. Galima naudoti į PHP įmontuotą susitarimą, arba sugalvoti savo ir jį naudoti.

Pirmiausia panagrinėkime standartinį PHP susitarimą. Šis susitarimas susideda iš to, kad jei mes turime tam tikrą failą su klase, tai kelias pagal svetainės katalogus iki šio failo turi sutapti su failo vardų erdve, o failo pavadinimas turi sutapti su jame esančios klasės pavadinimu. Tuo pačiu katalogų ir failo pavadinimai turi būti mažosiomis raidėmis.

Pažiūrėkime pavyzdžiu. Tarkime, mes turime šią klasę:

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

Pagal susitarimą ši klasė turi būti patalpinta kataloge /core/admin/ faile pagecontroller.php.

Dabar failo index.php naudokime mūsų klasę, neprijungdami jos per require, o naudodami automatinį įkėlimą. Tam failo pradžioje, kuriame iškviečiamos klasės, reikia iškviesti funkciją spl_autoload_register. Padarykime tai:

<?php spl_autoload_register(); // įjungiame automatinį įkėlimą $obj = new Core\Admin\PageController; // ramiai sukuriame objektą ?>

Faile index.php įjunkite automatinį klasių įkėlimą. Vadovaudamiesi susitarimu dėl katalogų ir failų pavadinimų sukurkite klasę Core\User, klasę Core\Admin\Controller ir klasę Project\User\Data. Faile index.php sukurkite šių klasių objektus.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti