PHP Dilinde Singleton Design Pattern Örneği

PHP Dilinde Singleton Design Pattern Örneği
Mart 30 13:35 2015 Bu yazıyı yazdır

Merhaba. Hepimizin bildiği gibi yazılım mühendisliği dahilinde herhangi bir problemi çözmek için, daha önceden en uygun şekilde tasarlanmış ve adına design pattern, diğer bir deyişle tasarım örgüleri dediğimiz bazı yapılar mevcuttur. Tüm bu tasarım örgüleri kendine özgü yeteneklere ve özelliklere sahiptir. Örneğin singleton kendisini oluşturan sınıfın bir örneğini dağıtmak için kullanılır. Bu yazımda PHP dilinde singleton tasarım örgüsüni kullanarak PDO veritabanı bağlantısını nasıl yapabileceğimizi göreceğiz.

Singleton Desing Pattern

Singleton Desing Pattern

İlk olarak durum isimli bir değişken tanımlıyoruz. Bunun sebebi veritabanı bağlantısını bu değişken yoluyla kontrol etmek istememiz. Veritabanı bilgilerini de static değişkenler olarak tanımladıktan sonra baglan() isimli static fonksiyonu oluşturuyoruz.

Bu fonksiyon için izlediğimiz yol, durum isimli değişkenin NULL olması veya olmaması durumunda PDO veritabanı bağlantısının tekrar yapılıp yapılmamasını sağlamak şeklinde olmaktadır. Bağlantı mevcutsa durum değişkeni TRUE değer dönecek ve baglan() fonksiyonu da bu durum değişken değerini döndürecektir.

Son olarak DB sınıfının destruct fonksiyonunda her durumda, durum değişkenini NULL olarak döndürüyoruz. Bunun sebebi veritabanı bağlantısını açtıktan sonr otomatik olarak kapanmasını sağlayarak işlemi kontrol altında tutmak istememizdir.

DB sınıfını çalıştırmak için aşağıdaki yolu izleyeceğiz:

Yukarıdaki kod çalıştığında, artık DB sınıfını çağırmış olduk ve PDO veritabanı bağlantısı gerçekleştirilmiş oldu. Sınıf içerisinde bir fonksiyonu, parametre ile birlikte çalıştırmak için:

Sonraki yazılarda görüşmek dileğiyle.

  Yazı şöyle etiketlendi:
  Kategoriler:
A.Gökhan, M.Sc.
A.Gökhan, M.Sc.

My Name is A. Gokhan SATMAN, and I am a software engineer, Author and game developer. gokhansatman.com

Daha fazla yazı görüntüle
Yorum yaz

1 Yorum

Yorum ekle

Your data will be safe! Your e-mail address will not be published. Also other data will not be shared with third person.
All fields are required.


*