PHP-daky OOP-da klaslary awtomatik ýükleme
Biz bir näçe klasy ulanmak üçin ony
require arkaly birikdirmeli bolýandygymyzy
ýatdan çykarmaňyz. Taslamada örän köp
klaslar bolanda, köp birikdirmeler peýda bolýar,
olary ýazmak örän amatly däl we gözegçilik
etmek kyn.
Munuň ýaly kynçylygy çözmek üçin PHP-e awtomatik ýükleme klaslary goşuldy. Awtomatik ýükleme PHP-e koda şol klasy çagyrylanda klas bar bolan faýly awtomatik ýüklemäge rugsat berýär. Şeýle-de, klaslar öz-özünden ýüklenmez - olary biriniň adlandyryş faýllary we klaslar gyzyklary barada ylalaşyga laýyklykda, sahypanyň gyzyklary boýunça ýerleşdirmek zerur. PHP-e gurulan ylalaşygy ulanmak mümkin, ýa-da özüňizi oýlap we ony ulanmak.
Başlangyç üçin PHP-niň standart ylalaşygyny derňäliň. Bu ylalaşyk şuňda ýatyr, bir faýlymyzda klas bolsa, onda sahypanyň gyzyklaryna çenli ýol faýlyň at giňişligi bilen gabat gelmeli, faýlyň ady bolsa onuň içinde saklanýan klasyň ady bilen gabat gelmeli. Bu ýagdaýda gyzyk we faýl adlary kiçi harpda bolmaly.
Mysalda göreliň. Bizde aşakdaky klas bar diýeliň:
<?php
namespace Core\Admin;
class PageController
{
}
?>
Ylalaşyga laýyklykda bu klas ýerleşmeli
/core/admin/ gyyzasynda faýlda
pagecontroller.php.
Indi bolsa index.php faýlynda
biziň klasymyzy ulanýarys,
onu require arkaly birikdirmän,
awtomatik ýüklemegi ulanmak bilen.
Bunu etmek üçin başynda,
klaslar çagyrylýan faýlda,
spl_autoload_register funksiýasyny çagyrmaly.
Bunu edeliň:
<?php
spl_autoload_register(); // awtomatik ýüklemäni açýarys
$obj = new Core\Admin\PageController; // rahatlyk bilen obýekti döredýäris
?>
index.php faýlynda awtomatiki
klaslary ýüklemäni açyň. Gyzyk we faýl
adlary barada ylalaşyga eýerip Core\User klasyny,
Core\Admin\Controller klasyny we
Project\User\Data klasyny ediň.
index.php faýlynda
bu klaslaryň obýektlerini dörediň.