PHP OOP Oto Sınıf Yükleme (Autoloading Class) Metodu
Selamün Aleyküm Arkadaşlar;
Bir sınıfı türettirmeden önce __autoload($sinif_isim) fonksiyonu tetiklenir. Bu yöntem her defasında sınıfın olduğu sayfayı entegre etmememizi sağlar. Yani otomatik olarak dahil edilir.
class klasöründe cls.ogr.php dosyasında ogr isminde sınıfımız olsun.
//dizin: /class/cls.ogr.php class ogr { public function __construct() { echo 'ogr sınıfı türetildi...<br />'; } }
//dizin: /index.php $ogr = new ogr();
Bu şekilde ogr sınıfını türettirdiğimiz zaman hata meydana gelir. Çünkü sınıfımız class/cls.ogr.php içinde olduğu için. Onu sayfaya dahil etmemiz gerekir. Bu işlemleri include, include_once, require, require_once komutlarıyla sayfayı dahil ederiz. Ama biz burada __autoload metodunu kullanacağız.
//dizin: /index.php function __autoload($sinif_isim) { echo 'cls.' . $sinif_isim . '.php sayfası dahil ediliyor...<br />'; require_once 'class/cls.' . $sinif_isim . '.php'; } $ogr = new ogr();
ogr sınıfı türetilmeden önce __autoload metodu çalışır. require_once ‘class/cls.ogr.php’ dosyasını dahil eder. Sonra ogr sınıfı türetilir.
Sınıf türetilirken hata meydana gelebilir. Hatayı yakalamak için try catch bloklarını kullanabiliriz. Bu özellik PHP 5.3.0 dan beri vardır. Önceki sürümlerde çalışmaz.
//dizin: /index.php function __autoload($sinif_isim) { echo "cls.$sinif_isim.php sayfası dahil ediliyor...<br />"; if(file_exists("class/cls.$sinif_isim.php")) require_once "class/cls.$sinif_isim.php"; else throw new Exception("cls.$sinif_isim.php isminde bir dosya bulunamadı."); } try { $ogr = new ogr1(); } catch (Exception $e) { echo $e->getMessage(); }
ogr1 sınıfı olmadığı için catch bloğu çalıştırılacaktır.
Hayırlı günler, sağlıcakla kalın.
Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.