PHP ile Sınıf oluşturma, Get ve Set Metodları Kullanımı
PHP tamamen sunucu taraflı bir web programlama dilidir. Nesne Yönelimli Programlamanın yazılımcılar tarafından yoğun kullanılması nedeniyle PHP5'te nesne yönelimli programlama(OOP) geçmiştir. Günümüzde artık nesne yönelimli olmayan programlama dilleri kullanılmamakta ve ortadan kalkmaktadır. Fortran, Pascal gibi dilleri bazı üniversiteler programlamaya giriş derslerinde kullanılsalar da bu dillerin günümüz dünyasında profesyonel hayatta bir geçerliliği yoktur.
Nesne Yönelimli Programlama özellikle tekrar kullanılabilirlik(reusability) kavramı ile ön plana çıkmaktadır. Yazılan sınıfların daha sonra farklı projelerde tekrar kullanılabilmesi hem zaman hem de maliyet açısından faydalar sağlamaktadır. Başladığınız her projede aynı kodları defalarca yazıyorsanız ve sizin yazdığınız kodları yazılım ekibi içerisindeki diğer yazılımcılar geliştirip kullanamıyorsa, hem zaman hem maliyet açısından verimsiz bir durum söz konusudur.
PHP'ye dönecek olursak, PHP dilinde sınıf oluşturma işlemi tıpkı C++ ve Java'da olduğu gibi class ifadesi kullanılır, ardından sınıf adı yazılır. Örneğin aşağıdaki gibi bir tanım ile bitkiler sınıfını oluşturduk.
Nesne Yönelimli Programlama özellikle tekrar kullanılabilirlik(reusability) kavramı ile ön plana çıkmaktadır. Yazılan sınıfların daha sonra farklı projelerde tekrar kullanılabilmesi hem zaman hem de maliyet açısından faydalar sağlamaktadır. Başladığınız her projede aynı kodları defalarca yazıyorsanız ve sizin yazdığınız kodları yazılım ekibi içerisindeki diğer yazılımcılar geliştirip kullanamıyorsa, hem zaman hem maliyet açısından verimsiz bir durum söz konusudur.
Nesne Yönelimli programlamanın diğer bir avantajı sürdürülebilirlik(maintainability) özelliğidir. Kaynak kodların kolayca okunabilmesi, anlaşılabilmesi gibi avantajları yanında kolayca hata bulma, optimize etme işlemleri de pratik bir şekilde yapılabilir.
Genişleyebilirlik(Extensibility) de nesne yönelimli programlamanın diğer bir avantajıdır. Kodlarınıza kolayca yeni özellikler ekleyip genişletmenize olanak tanır.
PHP'ye dönecek olursak, PHP dilinde sınıf oluşturma işlemi tıpkı C++ ve Java'da olduğu gibi class ifadesi kullanılır, ardından sınıf adı yazılır. Örneğin aşağıdaki gibi bir tanım ile bitkiler sınıfını oluşturduk.
class bitkiler{
}
Sınıflarda özellik (attribute) ve metodlar(methods) yer alır. Sınıftan oluşan nesnelerin hangi eylemleri yapabileceğini metodlarla ifade ederiz. Yapısal programlamada metod yerine fonksiyon ifadesi kullanılır. Özellikler ise sınıfımızdan türetilecek nesneleri tanımlayan ifadelerdir. Örneğin araba sınıfı oluşturmuş olalım. Tüm arabalarda vites ve renk özelliği bulunmaktadır. Araba sınıfından türetilen her nesne bu özelliklere sahip olacaktır.
Encapsulation(sarmalama) özelliğinden dolayı sınıf içindeki özelliklere direkt olarak erişilmemesi gerekir. Bu nedenle private ifadesi sınıf içindeki her özelliğin önüne yazılmıştır. public yazsaydık direkt olarak erişebilirdik, fakat nesne yönelimli programlamanın mantığına ters bir yaklaşımdır. Çünkü sınıf içindeki özelliklerin dışarıdan erişilemeyecek şekilde korunması gerekir.
Peki direkt olarak sınıf içindeki özelliklere erişemiyorsak bu sınıftan türetilen nesnelere nasıl değer atayacağız? Değer atamak için Set metodunu, özelliğin değerini almak için ise get metodunu kullanacağız.
PHP'de genelde her sayfada bir sınıf olacak şekilde ayarlarız. Aşağıda kullanılan $this sözcüğü ile o sınıfın içinde bulunan özelliklere erişim yapılmaktadır. $this->vites ile sınıfın üst kısmında tanımladığımız vites özelliğine erişmekteyiz.
Encapsulation(sarmalama) özelliğinden dolayı sınıf içindeki özelliklere direkt olarak erişilmemesi gerekir. Bu nedenle private ifadesi sınıf içindeki her özelliğin önüne yazılmıştır. public yazsaydık direkt olarak erişebilirdik, fakat nesne yönelimli programlamanın mantığına ters bir yaklaşımdır. Çünkü sınıf içindeki özelliklerin dışarıdan erişilemeyecek şekilde korunması gerekir.
Peki direkt olarak sınıf içindeki özelliklere erişemiyorsak bu sınıftan türetilen nesnelere nasıl değer atayacağız? Değer atamak için Set metodunu, özelliğin değerini almak için ise get metodunu kullanacağız.
PHP'de genelde her sayfada bir sınıf olacak şekilde ayarlarız. Aşağıda kullanılan $this sözcüğü ile o sınıfın içinde bulunan özelliklere erişim yapılmaktadır. $this->vites ile sınıfın üst kısmında tanımladığımız vites özelliğine erişmekteyiz.
<?php
class araba{
private $vites;
private $renk;
public function getVites(){
return $this->vites;
}
public function setVites($vites) {
$this->vites = $vites;
}
public function getRenk(){
return $this->renk;
}
public function setRenk($renk){
$this->renk =$renk;
}
}
$a = new araba();
$a->setVites(5);
echo "Arabanın vites Sayısı:".$a->getVites();
echo "\n";
$a->setRenk("beyaz");
echo "Arabanın rengi:".$a->getRenk();
?>
Sınıfın bitiminde sonra aşağıdaki satır ile Araba sınıfından $a isimli bir nesne oluşturmaktayız. $a nesnesi, Araba sınıfının tüm metod ve özelliklerini kullanabilir. Bir sınıftan istediğimiz kadar nesne türetebiliriz.
$a= new Araba();
Aşağıda da otomobil ve kamyon isimli nesneleri Araba sınıfından oluşuyor, bu nesnelerin hepsi aynı aileden oluşuyor. Fakat aralarında tabi ki farklar olacak. İleride sınıflarımızı geliştirerek var olan sınıflardan yeni sınıflar oluşturacağız.
$kamyon = new Araba();
$otomobil = new Araba();
Yukarıdaki kodları mutlaka yazarak test ediniz, farklı sınıflar tasarlayarak onlardan nesneler türetiniz.
Sınıfları oluşturmayı ve nesne türetmeyi öğrendikten sonra, Kalıtım(inheritance), Arayüzler(Interface), Soyutlama(Abstraction) ve Sihirli Metodlar (Magic Methods) üzerinde duracağız. Namespace kavramına da yer geldiğinde detaylı olarak değineceğiz. Bu konulara ilgi duyan arkadaşları gelecek yazılarımıza bekleriz.
PHP ile MySQL Veritabanına PDO Tekniği ile Class Oluşturarak Bağlanma-3
Aşağıdaki yazılar ilginizi çekebilir.
PHP ile MySQL Veritabanına PDO Tekniği ile Class Oluşturarak Bağlanma-1
PHP ile MySQL Veritabanına PDO Tekniği ile Class Oluşturarak Bağlanma-2
PHP ile MySQL Veritabanına PDO Tekniği ile Class Oluşturarak Bağlanma-3
PHP ile MySQL Veritabanına PDO Tekniği ile Class Oluşturarak Bağlanma-4
PHP ile MySQL Veritabanına PDO Tekniği ile Class Oluşturarak Bağlanma-5
PHP ile MySQL Veritabanına PDO Tekniği ile Class Oluşturarak Bağlanma-6
Tüm PHP Dersleri için tıklayınız.
Mutlu kodlamalar,
Oğuzhan TAŞ
Ocak 2019
Oğuzhan TAŞ
Ocak 2019
Dil Değiştir(Change Language)
Kategoriler
- Csharp(58)
- Csharp Formlar(23)
- Web Tasarım(9)
- CSS(27)
- JavaScript(37)
- PHP(50)
- Laravel(3)
- ASP.net(38)
- Excel(15)
- Güvenlik(4)
- E-Ticaret(3)
- Kariyer(5)
- SQL Server(29)
- MySQL(16)
- Linux(17)
- MacOSX(8)
- Ayarlar(12)
- Bilgisayar Ağları(3)
- Symfony(1)
- Teknoloji(7)
- VBS(1)
- Arduino(6)
- RaspberryPi(1)
- Algoritmalar(15)
- HTML(3)
- Python(2)
- Bash Script(7)
- C Programlama(10)
- Flutter - Dart(11)
- Bootstrap(1)
En çok Okunan 18 Makale
- :: Excelde EĞER Fonksiyonu Kullanımı...
- :: Csharp ile Access Veritabanı Bağlan...
- :: SQL nedir, Temel SQL Komutları nele...
- :: Hangi Linux Dağıtımı?
- :: OSX İşletim Sistemine PHP, MySQL, A...
- :: Excel Hesap tablosunda EĞERSAY Fonk...
- :: PHP dilini kullanarak MySQLi tekniğ...
- :: Excel Hesap tablosunda ÇOKETOPLA Fo...
- :: Excel Hesap tablosunda ETOPLA Fonks...
- :: Excel Hesap tablosunda ÇOKEĞERSAY F...
- :: Hangi Programlama Dilini Öğrenmeliy...
- :: Mac Bilgisayarınıza Windows 7 Yükle...
- :: PHP ile Basit Dosya Yükleme
- :: C# Programlama Dili ile İlgili Örne...
- :: Excel hücrelerinde yıldız koyarak b...
- :: PHP Dili kullanarak MySQLi Tekniği ...
- :: PhpMyAdmin Şifresi Nasıl Değiştiril...
- :: Hangisi acaba, PHP mi ASP.NET mi ?