tarafından

Nesne Yönelimli PHP – Bölüm 2

oop-php-part2-banner

Giriş

Bundan önceki yazımızda nesne yönelimli PHP’ye giriş yapmıştık. Bu yazımızda ise önceki yazıdaki örnekler üzerinden; ilerlemeye devam ediyoruz. Eğer başlangıç seviyesinde bilgiye sahip değilseniz, öncelikle 1. yazıyı okumanızı tavsiye ediyorum.

Bu Yazıda

  1. Yapıcı (Constructors) ve Yıkıcı (Destrucktors) Metodlar,
  2. Fonksiyonlardan değer döndürme,
  3. Düzeni sağlama.

Konularını işliyoruz.

1. Yapıcı ve Yıkıcı Metodlar

Yapıcılılara, bir binanın yapımına başlanılması eylemi olarak bakabiliriz; yani bir sınıfın kullanıma hazır olması için gereken işlemler olarak tanımlanabilir. Yıkıcılar ise binanın yani sınıfın yok edilmesi olarak tanımlanabilir.

Daha iyi anlaşılması için yapıcılara bir örnek verelim:

<?php
class MyClass
{
function __construct()
{
echo "MyClass Loaded!";
}
}
$MyClass = new MyClass();
?>

Bu örnekde; basitçe bir sınıf tanımladık ve içinde yapıcı bir metod yerleştirdik. Kodumuzda bu sınıfımızı çağırdığımız zaman hiç bir işlem yapmasak bile yapıcı metod çalışacak ve ekrana “Sınıf kullanıma hazır” mesajını yazıcaktır.
Yıkıcı metodlara gelecek olursak; PHP’de sınıflarımızın her zaman bir yıkıcı metoda ihtiyacı yoktur. Zira siz bir nesne ile birkaç işlem yapıp o nesneyi yok ettiğinizde içindeki fonksiyon ve değişkenlerde yok olacaktır.

2. Fonksiyonlardan değer döndürme

Basit örneklerin dışında, gerçek projelerden bahsedecek olursak fonksiyonlarınızın her zaman ekrana birşey yazdırması gerekmez. Çoğu zaman geriye bir değer döndürülür ve bu değer ana programda istenilen yerde kullanılır.

Fonksiyonlardan geriye bir değer döndürmek için “return” anahtar kelimesi kullanılır ve formatı “return Geri Döndürülecek Değer” şeklindedir.

<?php

class Sinifim
{

var $mysqli;

function __construct()
{

$this->mysqli = new mysqli('localhost', 'root', '', 'blog');

}

function get_latest_posts()
{

//Do some database selection
$query = "SELECT * FROM `yazilar` ORDER BY `id` DESC";
$result = $this->mysqli->query($query);

return $result;

}

}

php?>

Yukarıdaki örnekde; en basitinden bir veritabanı bağlantısı kurduk ve ardından veritabanındaki “yazilar” tablosundaki verileri azalan sıra ile çekip, PHP uygulamamıza gönderdik. Bu noktadan itibaren veritabanından gelen bilgileri istediğimiz yerde kullanabiliriz.

3. Düzeni Sağlama

intro-oop-knex-boxes

Yukarıdaki resim “sınıf” terimine iyi bir örnek. Birbiri ile bağımsız her kutuya bir sınıf olarak bakacak olursak, kutuların içindekilerde o sınıfa ait fonksiyonlar ve değişkenlerdir.

Sınıfların en büyük avantajı, içindekileri kolay okunabilir ve düzenlenebilir şekilde tutmasıdır. WordPress’in veritabanı işlemlerini gerçekleştirmek için kullandığı sınıfına bakacak olursanız demek istediğimi daha iyi anlayacaksınız.

Gördüğünüz gibi her sınıf tanımının, fonksiyonun, değişkenin, yapıcının üst kısmında; ne işe yaradığını anlatan açıklama satırları mevcut. Bu, o sınıfı kullanan diğer programcılar için çok büyük bir avantaj sağlamaktadır.

Şimdi bu yapıyı kendi sınıfımıza da uygulayalım:

<?php

/*
* @name Sinifim
* @params none
* Bu sınıf, veritabanına bağlantıyı ve yeni kayıt ekleme işlemlerini gerçekleştirir.
*/
class Sinifim
{

/*
* MySQLi Bağlantısı
*/
private $mysqli;

/*
* __Yapıcı
* Yeni bir MySQL bağlantısı kurar.
*/
function __construct()
{

$this->mysqli = new mysqli('localhost', 'root', '', 'buildinternet');

}

/*
* Veri ekle
* @params Kullanici_Adi, Sifre
* @returns bool
*/
function Veri_ekle($Kullanici_Adi, $Sifre)
{

//Gelen bilgileri veritabanına kaydet.
if(success)
{
return true;
} else {
return false;

}
}
}
php?>

Gördüğünüz üzere, sınıfımızın ne olduğunu, hangi iş için yazıldığını belirtmiş olduk. Hangi fonksiyonun hangi parametrelere ihtiyaç duyduğunu ve yaptığı işlemden sonra geriye nasıl bir değer döndürdüğünü yazdığımı açıklama satırlarında belirttik.

Bundan sonraki yazımız için gerekli bilgiyi topladığımıza inanıyorum, 3. yazımızda veritabanı işlemleri yapmak için kullanacağımız basit bir sınıf yazacağız.

Kurtman Çelik
kurtmancelik.wordpress.com
Kaynak: http://buildinternet.com/2009/07/an-introduction-to-object-oriented-php-part-2/

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s