PHP İle Nesne Yönelimli Programlama – 4

Merhaba arkadaşlar bugün dersimizde daha önce de işlediklerimizi kullanarak veritabanına bağlanma sınıfını son bir kez elden geçirip daha düzenli bir sınıf yazarak veritabanına bağlanma sınıfı olan database sınıfını sonlandıracağız.
İlk olarak tüm kodlarımızı şöyle bir görmek açısından _5class.php olarak kaydedelim ve kodlarımızı inceleyelim. Dersi anlamak için lütfen daha önceki derslerimiz gözden geçiriniz. Burada sadece işlenilmeyen yerlere değineceğim.

[ad#orta]

class database
{
    private $host = 'localhost';
    private $user = 'root';
    private $pass = '123';
    private $vt = 'test';
 
    private $connection;
    private $db;
 
    function  __construct() // Bunun yerine fonksiyonu adını da class adı ile yani database verirsek o da __construct ile aynı işlemi görür.
    {
        if($this->connect())
        {
            if($this->select_db())
            {
                echo 'Baglandi.';
            }
            else
            {
                echo 'HATA: Veritabani ile baglanti kurulamiyor.';
            }
        }
        else
        {
            echo 'HATA: Sunucu ile baglanti kurulamiyor.';
        }
    }
 
    private function connect()
    {
        $this->connection = @mysql_connect($this->host,  $this->user,  $this->pass);
        if($this->connection){return TRUE;}else{return FALSE;}
    }
 
    private function select_db()
    {
        $this->db = @mysql_select_db($this->vt,  $this->connection);
        if($this->db){ return TRUE; }else{ return FALSE; }
    }
 
    private function close()
    {
        $this->connection = @mysql_close($this->connection);
        if($this->connection){return TRUE;}else{return FALSE;}
    }
 
    function  __destruct()
    {
        $this->close();
    }
}

Kodlarımızı çalıştıracağımız sayfa olan _5index.php dosyasının kodları ise şu şekildedir.

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

Kodumuzu çalıştırdığımızda ekrana şu şekilde bir çıktı vermesi gereklidir.(Lütfen veritabanı bağlantı ayarlarını değiştirerek çalıştırınız.)

Baglandi.

İlk olarak kendi veritabanı ve host ayarlarınızı değişkenlerin tanımlandığı kısımdan değiştiriniz. Daha sonrasında bu classa ek olan şu iki satırı ekleyiniz. $vt değişkeni ile veritabanının adı saklanmaktadır. $db değişkeni ile de veritabanıile bağlantı var mı yok mu diye kontrol edilmektedir.

private $vt = 'test';
private $db;

connect fonksiyonu yani host ile bağlantı kurma fonksiyonunda ise değişiklik yapılarak eğer bağlantı sağlanmış ise fonksiyon TRUE değerini döndürmektedir. Bağlantı sağlanmadıysa FALSE değerini döndürmektedir. Fonksiyon içeriği ise şu şekildedir.

private function connect()
    {
        $this->connection = @mysql_connect($this->host,  $this->user,  $this->pass);
        if($this->connection){return TRUE;}else{return FALSE;}
    }

Bu classta yeni bir fonksiyon olan select_db ise bizim veritabanına bağlanma işlemimizin gerçekleştiği fonksiyondur.

private function select_db()
    {
        $this->db = @mysql_select_db($this->vt,  $this->connection);
        if($this->db){ return TRUE; }else{ return FALSE; }
    }

__construct fonksiyonu ile de bağlantıyı sağlıyoruz. Bu fonksiyon sınıf yapılandırılırken çalışan fonksiyondur. Burada hosta bağlanmak için connect, veritabanına bağlanmak için ise select_db fonksiyonlarını çağırıyoruz. if ile kontrol ederek bağlantı durumunu çıktı olarak kullanıcıya sunuyoruz.

function  __construct()
    {
        if($this->connect())
        {
            if($this->select_db())
            {
                echo 'Baglandi.';
            }
            else
            {
                echo 'HATA: Veritabani ile baglanti kurulamiyor.';
            }
        }
        else
        {
            echo 'HATA: Sunucu ile baglanti kurulamiyor.';
        }
    }

Diğer kullanılan close ve __destruct fonksiyonları ise geçen derste kullandığımız fonksiyonların aynısıdır ve aynı işlevi görmektedir.
Şu an itibariyle bir adet database sınıfımızı oluşturduk ve sınıf içinde host ve veritabanı ile bağlantıyı sağladık. Bu classı kodlarınızda gönül rahatlığıyla kullanabilirsiniz.
Umarım bilgiler sizin için yararlı olmuştur.

Leave a Reply