Upakiaji wa kiotomatiki wa madarasa katika OOP katika PHP
Tayari unajua kuwa ili kutumia
darasa lolote, lazima tuililishe
kupitia require. Wakati kwenye mradi kuna
madarasa mengi sana, basi hutokea maingizo mengi
ambayo ni vigumu kuandika
na ni ngumu kudhibiti.
Ili kutatua tatizo kama hilo katika PHP iliyoongezwa upakiaji wa kiotomatiki wa madarasa. Upakiaji wa kiotomatiki huuruhusu PHP kupakia faili kiotomatiki na darasa wakati wa kujaribu kurejelea darasa hilo katika msimbo. Hata hivyo, madarasa hayatapakia wenyewe hawayatapakia - ni muhimu kuwaweka kwenye folda za tovuti kwa njia maalum, kufuata fulani mapatano ya majina ya faili na folda za madarasa. Inawezekana kutumia mapatano yaliyojengwa ndani ya PHP, au unda yako mwenyewe na uitumie.
Wacha kwanza tuchambue mapatano ya kawaida ya PHP. Mapatano haya yanajumuisha kuwa kama tunayo faili fulani na darasa, basia njia ya folda za tovuti kwa faili hii inapaswa Sanana na anuwai ya majina ya faili, na jina la faili linapaswa sanana na jina la darasa lilio ndani yake. Wakati huo huo, majina ya folda na faili yanapaswa kuwa kwa herufi ndogo.
Wacha tuangalie kwa mfano. Wacha tuwe na darasa lifuatalo:
<?php
namespace Core\Admin;
class PageController
{
}
?>
Kulingana na mapatano darasa hili linapaswa kupatikana
katika folda /core/admin/ kwenye faili
pagecontroller.php.
Sasa wacha kwenye faili index.php tutumie
darasa letu, bila kulilisha kupitia require,
lakini kwa kutumia upakiaji wa kiotomatiki. Ili kufanya hivyo mwanzoni
kwa faili, ambapo madarasa yanaitwa, inapaswa
kuitwa kazi spl_autoload_register.
Wacha tufanye hivi:
<?php
spl_autoload_register(); // wezesha upakiaji wa kiotomatiki
$obj = new Core\Admin\PageController; // tunaunda kitu kwa utulivu
?>
Kwenye faili index.php wezesha upakiaji wa kiotomatiki
wa madarasa. Kufuata mapatano ya majina
ya folda na faili fanya darasa Core\User,
daras Core\Admin\Controller na darasa
Project\User\Data. Kwenye faili index.php
unda vitu vya madarasa haya.