Junior
PHP-də avtomatik sinif yükləmə nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Dinamik olaraq sinif fayllarını (interfeys, traitlər) ilk dəfə istifadə edildikdə yükləməyə imkan verən mexanizm, require və ya include istifadə etmək əvəzinə.
Üstünlüklər:
- Kod strukturunu sadələşdirir.
- Tətbiqin icrasını sürətləndirir (lazımsız siniflər yüklənmir).
- Asılılıqları idarə etməyi asanlaşdırır.
spl_autoload_register() funksiyası vasitəsilə həyata keçirilir, bu funksiya autoload funksiyalarını yığmağa qeyd edir. Təyin olunmamış sinif nümunəsi yaradılmağa çalışıldıqda, PHP qeydiyyatdan keçmiş funksiyaları ardıcıllıqla çağırır və sinif adını arqument kimi verir.
Sadə autoload funksiyasının nümunəsi:
<?php
// Bu funksiya təyin olunmamış sinif istifadə edilərkən çağırılacaq
spl_autoload_register(function (string $className) {
// Siniflərin .php uzantılı fayllarda saxlandığını fərz edirik
// və fayl adının sinif adı ilə uyğun olduğunu (böyük-kiçik hərf həssaslığı ilə!)
$filePath = $className . '.php';
// Faylın mövcud olub-olmadığını yoxlayır və daxil edir
if (file_exists($filePath)) {
require_once $filePath;
}
});
// Avtomatik yüklənəcək sinifin istifadəsi nümunəsi
$myObject = new MyClass();
Ən çox istifadə olunan standart PSR-4 dir. Bu, sinif adlarının məkanlarını fayl sistemindəki fayl yollarına necə uyğunlaşdırmaq lazım olduğunu müəyyən edir.