PHP İle Nesne Yönelimli Programlama – 3

Bugünki dersimizde __construct ve __destruct fonksiyonlarını öğreneceğiz. Devamında geçen dersteki örneğimiz üzerinden bu fonksiyonlarla ilgili geliştirmeler yapacağız.
__construct : Bu fonksiyon sınıf yapılandırılırken yani sınıf ilk çalıştığında ilk olarak bu fonksiyon çalışır eğer ki __construct bulamaz ise sınıf adı ile aynı olan fonksiyonu __construct olarak algılar ve aynı işlemi burada uygular. Burada önemli olan şudur: Bu fonksiyonda kullanacağımız kodlar ilk çalışacak ve bir kerelik gerekli olan kodlar olmalı. Böyle olduğu zaman daha işlevsel olacaktır.
__destruct : Bu fonksiyon ise tam tersi işlem yapar. Yani sınıf sonlandırılırken yapılacak işlemler bu fonksiyon içerisine yazılmalıdır. Böylece bizim en sonda yapmak istediğimiz işlemler bu şekilde gerçekleşmiş olur. Örneğin en sonda yapılacak işlemlerden birisi veritabanı ile bağlantıyı koparmaktır. Bu işlem burada gerçekleştirmek için tam yeridir.

[ad#orta]

Bu kadar tanımlamanın arkasından örneğimize geçelim. Örneğimizde geçen hafta yaptığımız veritabanına bağlanma işlemini __construct ve bağlantıyı sonlandırma işlemini ise __destruct fonksiyonunu kullanarak gerçekleştireceğiz.
İlk olarak kodlarımızın tamamını görelim ki bütünü algılayalım ve ne yapacağımızı size tam olarak göstermiş olalım. Dosyanın ismini _4class.php olarak verelim.

class database
{
    private $host = 'localhost';
    private $user = 'root';
    private $pass = '123';
 
    private $connection;
 
    function  __construct() // Bunun yerine fonksiyonu adını da class adı ile yani database verirsek o da __construct ile aynı işlemi görür.
    {
        echo $this->connect();
    }
 
    private function connect()
    {
        $this->connection = @mysql_connect($this->host,  $this->user,  $this->pass);
        if($this->connection)
        {
            return 'Baglanti saglandi.';
        }
        else
        {
            return 'HATA: Baglanti saglanamadi.';
        }
    }
 
    private function close()
    {
        $this->connection = @mysql_close($this->connection);
        if($this->connection)
        {
            return 'Baglanti sonlandi.';
        }
        else
        {
            return 'HATA: Baglanti sonlanmadi.';
        }
    }
 
    function  __destruct()
    {
        echo $this->close();
    }
}

İlk olarak $connection adında değişken oluşturduk. Böylelikle bağlantının değerini tutacak bir değişkene sahip olduk.

private $connection;

Sonrasında ise __construct fonksiyonumuzu yazdık. Burada bağlantı işlemini gerçekleştireceğiz. Fonksiyonda bağlantı işlemini gerçekleştiren connect fonksiyonu çağırdık ve echo ile ekrana yazdırdık.

function  __construct()
    {
        echo $this->connect();
    }

İstersek __construct yerine fonksiyonun ismini class ismi ile aynı olan isim vererek yani database vererek de __construct işlemi ile aynı işlemi gerçekleştirmiş olurduk.
connect fonksiyonunda küçük bir değişiklik olarak $status yerine $connection ile bağlantıyı kontrol ettik.
Classımıza ek olarak bir de close fonksiyonu yazdık. Burada ise bağlantı varsa bağlantının kapatılması ise mysql_close komutunu kullanarak kapatma işlemini gerçekleştirecek fonksiyonun kodlarını yazdık.

private function close()
    {
        $this->connection = @mysql_close($this->connection);
        if($this->connection)
        {
            return 'Baglanti sonlandi.';
        }
        else
        {
            return 'HATA: Baglanti sonlanmadi.';
        }
    }

Son olarak da asıl dersimizin konularından birisi olan __destruct fonksiyonun yazdık ve burada close fonksiyonun çağırarak bağlantı varsa sonlandırma işlemini gerçekleştiren kodu çağırarak echo komutu ile ekrana yazdırdık.

function  __destruct()
    {
        echo $this->close();
    }

Kodların açıklaması bu şekildedir. Artık classlarımızda bağlantı işlemini __construct ve __destruct fonksiyonun kullanarak kolayca gerçekleştirebiliriz.
Kodlarımızın çalışması için _4index.php dosyasına şu kodları ekleyelim ve kaydedip çalıştırlarım.

include '_4class.php';
$database = new database();

Çalıştırdığımızda çıktı şu şekilde olmalıdır.

Baglanti saglandi.Baglanti sonlandi.

Evet arkadaşlar bir dersin daha sonunda geldik. Umarım yardımcı olabilmişimdir.

Hasan Huseyin İŞLER hakkında

Lise yıllarında programlama ile tanışan ve Q-Basic, Pascal, C başlangıç seviyesinde öğrenenir. Üniversite de TEF-BSÖ okurken diğer dillerin yanı sıra PHP'de kendini geliştirmeye devam ederek bunların yanında CSS, JS ve Wordpress sistemiyle ilgilenir. www.phpsorunu.com'un da yöneticisi ve yazarlarındandır.
Bu yazı Php kategorisine gönderilmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.

PHP İle Nesne Yönelimli Programlama – 3 için 1 cevap

  1. Aydın Acar der ki:

    Eyw hocam iyi bir çalışma ellerinize sağlık. Çok yardımı dokundu.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>