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.