Tweet

Php ile OOP Mimarisine Genel Bakış

uploads/20111221-214318-1136.jpgProgramlama dillerinin yalnızca bazılarının daha fazla ön plana çıkmasının önemli nedenlerinden biri nesne tabanlı olmasıdır. Peki neden OOP (Object Oriented Programming) ? Öncelikle nesne tabanlı programlamadan tam olarak neyin kastedildiğini iyi bilmek gerekiyor. Basit projeler için zevkinize göre kod yazıyor olabilirsiniz, aynı işlemleri farklı şekillerde ancak tekrar tekrar yazıyor olabilirsiniz. Ancak projenin basitliği bitip karmaşıklığı başladığında aynı methodları tekrarlamanın size ciddi zaman kaybettirdiğini anlayacaksınız. İşte bu gibi nedenlerden dolayı nesne tabanlı programlama kavramları ortaya çıkmıştır.[...] Profesyonelliğe adım atmak için OOP mimarisine katılmak kendinizi daha fazla geliştirmeniz açısından oldukça faydalı olacaktır. Projelerin performans düzenliliğini sağlamak için bu tarz mimarilerin kullanılması tavsiye edilmektedir. Örneğin veritabanı işlemlerinin aktif olarak yer aldığı bir web uygulaması geliştiriyorsunuz ve birbirinden türeyen ya da tam bağımsız sayfalarınız bulunmakta. Tek bir sınıf yazarak her sayfa için aynı işlemleri tekrarlatmaktan kurtulabilirsiniz bu size performans ve zaman kazandırır, ya da her sayfa için tek tek bağlantı providerlarını hazırlar sql sorgularını yazar ve tek tek değer çağırır ya da değer gönderirsiniz. OOP genel anlamıyla bu şekilde özetlenebilir. OOP denildiğinde bir çok kişinin aklında ilk beliren objelerden bir tanesi de elbette MVC. MVC açarsak Model - View - Controller gibi yapılarla karşılaşabiliriz. MVC yapısı sayesinde kullanıcılara sunulan kapsamlı ve karmaşık verilerin uygulamada soyutlanması amaçlanmaktadır. Yani sunulan veriler(model) ve kullanıcıya sunulan arayüz(view) tamamen birbirinden soyutlanarak karmaşıklık ortadan kaldırılır. Büyük projelerde kodun takibi ve performansı açısından bu yapı ideal olarak kabul görülmektedir. Dilerseniz kendi MVC yapınızı oluşturabileceğiniz gibi hazır frameworklar da kullanabilirsiniz. Ancak başlangıç düzeyinde bir programcı için kendi yapısını oluşturması tavsiye edilmektedir. Peki hangi aşamada OOP kullanmalıyız? Bu sorunun cevabı tamamen yazılımcının bilebileceği bir konu ancak genel olarak en basit tabirle veritabanı sınıfı yazarak işe başlayabilirsiniz. Sayfalarınızda her işlem için yeni bağlantı açmak ve veritabanı sunucusuna tekrarlanan sorgular göndermek gerek veritabanı tarafında gerekse sayfa performansı tarafında ciddi aksaklıklar meydana getirecektir. Bu nedenle bir sınıf tanımlaması gereksiz iş yükünü ortadan kaldıracaktır. Sınıf içerisinde birden fazla veritabanı işlemini gerçekleştiren fonksiyonlar yer alabilir. Bu fonksiyonlar basitce CRUD işlemlerini yapabileceği gibi sizin belirleyeceğiniz ve projenizin yapısına göre değişkenlik gösterebilecek istekler doğrultusunda farklı fonksiyonlar yer alabilir. Aynı class içerisinde birbiri ile bağlantılı olan fonksiyonların kullanılması stabil bir yapı için gereklidir.MVC yapısını kullanan başlıca frameworklar ise zend,codeigniter,cakephp,symfony olarka sıralanabilir. Bir örnek ile konumuzu anlaşılabilir hale getirelim şimdi;

Örneğimizi veritabanı işlemleri üzerinden yürüteceğiz. Öncelikle sınıfımızı oluşturalım..

CODE:
class Database  
{
public function connect() { }



private db_host = 'localhost';
private db_user = 'root';
private db_pass = '';
private db_name = 'test';

public function connect()
{
if(!$this->conn)
{
$mysqlconn = @mysql_connect($this->db_host,$this->db_user,$this->db_pass);
if($mysqlconn)
{
$selectdb = @mysql_select_db($this->db_name,$mysqlconn);
if($selectdb)
{
$this->conn = true;
return true;
} else
{
return false;
}
} else
{
return false;
}
} else
{
return true;
}
}


}

Yukarıdaki basit örneği incelersek aslında class mantığının ne kadar kolay olduğunu görebilirsiniz. Değer alacak değişkenlerimiz mysql bağlantısı için gerekli olan değerleri tutuyor. Yüzeysel bir şekilde alacağı değerleri @mysql_connect ile işliyor, ardından yine alacağı değer ile veritabanını seçerek bağlantıyı açıyor.

CODE:
$db = new Database();


ile classımızı çağırıyoruz ve ardından;

CODE:
$db->connect();


ile mysql bağlantısını yapan fonksiyonumuzu çağırıyoruz.

Bu şekilde devamını gereksinimlerinize göre türetebilir bağlantıyı kapatan, CRUD işlemlerini gerçekleştiren fonksiyonları yazabilirsiniz. Daha kapsamlı bir konuda görüşmek üzere.


Oguzz
oguz@thecoders.net
21 Aralik 2011 21:40

İlgili Olabilecek Makaleler


Yorumlar (0)




Ziyaretçi olarak yorum yazamazsınız. Üye olmak için tıklayın Üye iseniz giriş yapın.



MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg