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.