Junior
PHP'de otomatik sınıf yükleme nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Dinamik olarak sınıf dosyalarını (arayüzler, traitler) ilk kez kullanıldığında yüklemeyi sağlayan mekanizma, require veya include kullanmak yerine.
Avantajlar:
- Kod yapısını basitleştirir.
- Uygulamanın çalışmasını hızlandırır (gereksiz sınıflar yüklenmez).
- Bağımlılık yönetimini kolaylaştırır.
spl_autoload_register() fonksiyonu kullanılarak uygulanır, bu fonksiyon autoload fonksiyonlarını yığnağa kaydeder. Tanımlanmamış bir sınıf örneği oluşturulmaya çalışıldığında, PHP kaydedilen fonksiyonları sırayla çağırır ve sınıf adını argüman olarak geçirir.
Basit bir autoload fonksiyonu örneği:
<?php
// Bu fonksiyon, tanımlanmamış bir sınıf kullanılmaya çalışıldığında çağrılır
spl_autoload_register(function (string $className) {
// Sınıfların .php uzantılı dosyalarda saklandığı varsayılır
// ve dosya adı sınıf adıyla aynı olur (büyük/küçük harfe duyarlı!)
$filePath = $className . '.php';
// Dosyanın var olup olmadığını kontrol et ve dahil et
if (file_exists($filePath)) {
require_once $filePath;
}
});
// Otomatik yüklenecek sınıfın kullanımı örneği
$myObject = new MyClass();
En yaygın autoload standardı PSR-4'dür. Bu, sınıf isim alanlarını dosya yollarıyla nasıl eşleştireceğinizi belirler.