İçeriğe geç

PHP spl_autoload_register Kullanımı

PHP dilinde yaklaşık her uygulamada yer alan autoloader’ların en büyük problemi tüm sınıfların aynı anda yüklenmesi ve kullanılmayan bu çoğu sınıfın sistemde yük oluşturmasıdır. Yani sisteminizde örnek verecek olursak, ajax ile bir post işlemi yaparken neden mail sınıfınız include edilsin ki?

Bu durumu, örneği çoğaltabiliriz.. Framework’larde gördüğüm kadarıyla şu anda kullanılmayan sınıfların önüne geçmek için her controller yapısında ilgili sınıfı elle include ediyoruz. Yani bu da demek oluyor ki her kullanacağımız sınıfı tanımlıyoruz. Tabii hal böyle olunca her controller’da aynı sınıfı yazmak yada tanımlamak (adını siz koyun) projede illa ki bir yerde eksikliğe, kargaşaya neden olacaktır. Bu durumda size spl_autoload_register metotuyla tanıştırmak isterim. Bununla ilgili github hesabımda bir uygulama yayınladım. Linkini yazının sonunda paylaşacağım..

spl_autoload_register metotu bize normal __autoloader metotuna karşı olarak sadece sınıfı kullanmak istediğimiz sırada include edilme şansı verir. Yani kullanmak istediğiniz sınıf neyse sadece sınıfın bir metotunu çalıştırmak. Yapmanız gereken tek şey bu. Bunu yaptığınız sırada spl_autoload_register metotu sizin için sınıfını include edecektir.

Örnek olarak kullanım:

Bu örnekte basit bir fonksiyon ile sınıfımızı classes dizinin altında sınıfı include edecektir. İstenirse sabit olarak tanımlanan bazı metotlarıda include sırasında başlatabilirsiniz.

GitHub Örneğim: https://github.com/enesgur/autoloader

PHP.NET: http://www.php.net/manual/en/function.spl-autoload-register.php

Kategori:PHP
  • Ahmet

    Mantığını anlamamıştım teşekkürler

  • Fatih Çalisan

    Açıklayıcı, güzel, hoş. İyi çalışmalar, bilgi için teşekkür ederim