Otomatik Yükleme
"Dinamik bir kütüphaneyi tanımlarken sınıf isminin başına Internal ön eki getirirerek statik erişimli hale getirebilirsiniz. "
Daha önceki konularımızda oluşturduğumuz sınıfları kullanacağımı dosyaya require ile dahil ederek kullanmıştık. Böyle bir kullanımın dezavantajı bir sınıf için gerekli olan diğer sınıflarında dahil edilme zorunluluğudur. Bu nedenle bu bölümde bu işlemin nasıl daha pratik bir şekilde yapılacağı ve dahil etme işlemini doğrudan programın kendisine yaptıracağımızı göstereceğiz. Bu işlem için PHP'de bulunan spl_autoload_register() fonksiyonundan yararlanacağız. Bu fonksiyonun amacı olmayan bir sınıf çağrıldığında devreye girmesidir.
# Otoyükleyicinin Oluşturulması
Otoyükleyiciyi oluşturmak için spl_autoloader_register() yöntemini kullanacağız.
<?php
spl_autoload_register(function(string $class)
{
$path = str_replace('\\', '/', $class) . '.php';
if( is_file($path) )
{
require $path;
}
});
Yukarıdaki fonksiyonun amacı çağrılan sınıfı otomatik olarak dahil etmektir. str_replace() fonksiyonu ise çağrılan sınıf namespace içeriyorsa isim alanındaki \ sembolünü / sembolüne çevirerek ilgili sınıfın yol bilgisini oluşturuyor.
# Otoyükleyicinin Kullanılması
Oluşturduğumuz otoyükleyiciyi sınıfları çağıracağımız dosyaya dahil ediyoruz.
<?php require 'autoloader.php';
$automobile = new Automobile;
echo $automobile->wayType();
Yukarıdaki kullanımda dikkat edilirse artık Automobile:: sınıfını üst sınıfı olan Vehicle:: sınıfını require ile dahil etmeden otomatik olarak yükletmeyi başardık.