» » » » Php __autoload fonksiyonu

Php __autoload fonksiyonu

özkan arıcı
özkan arıcı Yönetici 24-07-2016, 15:33
Php de __autoload() fonksiyonumuzu kullanarak oluşturduğumuz dizindeki siniflarimizi projemize otomatik olarak dahil edebiliriz.Böylelikle her defasında dosyayı projeyi include ettim mi etmedim mi derdinden de kurtulmuş oluruz

örneğin phpde class ( sınıf ) ağırlıklı çalışıyorsunuz ve sınıflarımız tek dosya içinde topluyoruz her defasından bu sınıfları include etmek yerine bu metodla sadce dosyamızı çağırıp diğer sınıflarında sayfamıza dahil olmasını sağlayabiliriz

Peki nasıl kullanıcaz ?

öncelikle a.php adında dosyamızı oluşturalım
PHP

<?php

class a{

    public function __construct(){


        echo"a sınıfımız çalıştı";
    }


}



?>

b.php oluşturalım

<?php

class b{

    public function __construct(){


        echo"b sınıfımız çalıştı";
    }


}



?>


daha sonra autoload.php dosyamızı oluşturalım

<?php



function __autoload($sinif){


    $dosyayol="autoload/{$sinif}.php";
    if(file_exists($dosyayol)){
       include_once($dosyayol);


    }
    else{
        exit($sinif.".php yüklenemedi");
    }


}




?>


burda önemli olan classlarımızı bulunduğu dosyaları bi klasörde toplamak.autoload.php de dosyamızı var olup ladığını kontrol ettiriyoruz dosyamız varsa projemize dahil ettiriyoruz dosyamız yok ise bulunamadı şeklinde hata verdiyoruz

şimdide index.php dosyamızı oluşturalım

<?php


include_once("autoload.php");
$a=new a();
$b=new b();
$c=new c();


?>

gördüğünüz gibi a ve b sınıflı dosyalarımız var olduğu için projeye dahil olup çalıştırılacak fakat c bulunamadığında dolayı hata verecektir
Bilgi
Yorum Ekleyebilmeniz için Sitemize Kayıt Olmanız Gerekmektedir.

Forum İstatistikleri

Üyelerimiz 55 onaylı konuda toplam 3 yorum yaptılar. Foruma en son 2016-08-13 14:38:05 tarihinde Jquery add() metodu başlıklı konu eklendi.
Forumda toplam 55 konu bulunmaktadır.
Foruma eklenen 55 konudan 55 tanesi onaylandı.
Forumda 0 adet konu onay beklemektedir.
Forumdaki 55 adet onaylı konuya toplam 3 yorum yapıldı.