⊗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ščinaShqipСрпскиSrpskiSvenskaKiswahiliไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мо барои коркарди сомона, таҳлил ва шахсӣ кардан аз cookie истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан