Ne Öğreneceğim?
- OOP Nedir?
- OOP Sınıf Yapısı
- OOP Metotları
Gereksinimler
- PHP
- Linux
Zorluk
- Orta Düzey
Eğitim İçeriği
PHP yazılım dili, tüm programlama dillerinde olduğu üzere nesne yönelimli programlamayı desteklemektedir. Geliştirilmek istenen yazılımı kısaltmak ve dizgesel hale getirmek için çok önemli ve çok sık kullanılan bir yöntemdir.
PHP4 versiyonunda nesne yönelimli yazılımın temelleri oluşturulduğundan eksikler çok fazlaydı ve PHP5 sürümüyle birlikte eksiklikler giderilerek OOP yapısı tekrar oluşturuldu. PHP5 sürümünden itibaren görünürlük, derslik soyutlama, final anahtar sözcüğü, büyülü yöntemler, nesne arayüzleri, nesne kopyalama ve tür dayatma gibi mevzular eklendi.
OOP Nedir?
OOP, Object Oriented Programming kelimesinin baş harflerinden oluşan bir programlama yöntemidir. Türkçe karşılığı nesne yönelimli programlama olarak ifade edilebilir.
OOP, birbiri ile alakalı ve dizgesel olarak çalışabilecek kod parçalarını bir arada tutarak, yazılımın bir tüm olarak çalışmasını sağlar. OOP mimarisi ile geliştirilecek sistem parçalara ayrılarak, parçalar arasında illişki kurmaya olanak sağlar.
Temel Kavramlar
Nesneler, kendi içerisinde tanımlanan değişken ve ek fonksiyonlardan oluşur. Bir nesne içinde tanımlanan birime özellik, nesneye ait fonksiyonlara ise davranış yada metod adı verilir. Dersliğin üyesi olarak ifade edildiğinde ise bu özellik veya metod olabilir.
Sınıf Yapısı
Bir derslik oluşturmak için öncelikle sınıf üyelerinin (özellik ve metotlar) birbiri ile ilişkili olmasına dikkat edilir. Sınıfın yapısı gereği, eğer birbirinden bağımsız özellik ve metotlar kullanırsanız, aslına bakarsanız derslik yazmanın bir anlamı kalmaz.
<?php
class ilkSinif
{
#özellik
public $birOzellik;
#davranis
public function birDavranis() {
echo 'Davranis Calisti';
}
}
?>
Yukarıdaki sınıf örneğinde, sınıf ilkSinif ismiyle oluşturulmuştur. Sınıf içinde birOzellik ismiyle değişken ve birDavranis ismiyle metod tanımlanmıştır.
Sınıf Çağırma (Örnekleme)
Bir dersliği çarpıtmak için new anahtar sözcüğü kullanılır. Aslında sınıfların bir çeşit veri türü bulunduğunu düşünürsek, çağırdığımız derslik tipinde bir değişken tanımlıyoruz diyebiliriz.
<?php
$nesne = new ilkSinif();
?>
Yukarıda yer edinen kodları dersliğin hemen altına yazarak tanımladığınız sınıftan bir örnek alabilirsiniz. Sınıftan örnek aldıktan sonrasında erişim izni olan özellik ve metotları kullanabiliriz. Derslik özellikleri $isim olarak tanımlansa da bu özelliği dışarıdan kullanırken $nesne->$isim olarak değil, $nesne->isim olarak kullanmanız gerekmektedir.
<?php
$nesne = new ilkSinif();
$nesne->isim = 'Ali';
echo $nesne->utopian();
?>
Yukarıdaki örnekte değişkenin içinde tanımlanan isim özelliğine Ali değeri yükleniyor ve yine değişken için erişim iznimiz olan utopian adlı metodu çalıştırıyoruz.
Kurucu ve Yıkıcı Metotlar
Bir derslik örneklendiğinde İlk olarak çalışan metod kurucu (construct) metodlardır. Sınıf üzerinde aslabir işlem yapmasanız dahil, örnek almış olduğunız anda bu metod otomatik olarak çalışır. Aynı şekilde derslik ile olan bağlantınız sonlandığında ise, yıkıcı (destruct) metodu otomatikman çalışır. Kurucu ve yıkısı metotların nasıl tanımlandığını öğrenmek ve bir sınıftan örnek alındığında otomatik olarak çalışmış olduğunı anlamak için aşağıdaki örneği inceleyip çalıştırarak deneyebilirsiniz.
<?php
class ilkSinif
{
#kurucu fonksiyon
function __construct() {
echo 'Kurucu fonksiyon çalıştı.';
}
#yıkıcı fonksiyon
function __destruct() {
echo 'Yıkıcı fonksiyon çalıştı';
}
}
#nesne örnekleme
$nesne = new ilkSinif();
?>
Yukarıdaki örnek dersliği yazıp çalıştırdığınızda kruucu fonksiyon çalışacaktır. Eğer bu sınıf üzerinde işlem gerçekleştirmiş olsaydık, bu işlemler gerçekleştirilecek ve PHP yorumlayıcısı artık dersliğin kullanılmadığını anladığında yıkıcı fonksiyonu çalıştıracaktı.
Kurucu metotlar; çoğu zaman derslik çapırıldığı esnada, sınıfa ilişkin özelliklerin için ilk değerler yüklenir ve lüzumlu görülürse, bazı metotlar tetiklenerek çalıştırılır. Yıkıcı metotlar ise, derslik kullanımını sonlandığinde özelliklerin silinmesi ve yine ihtiyaç halinde bazı metotların çalıştırılması için kullanılabilir.
Posted on Utopian.io - Rewarding Open Source Contributors