Sobes.tech
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.