PHP 5.4 ile hayatımıza giren yeniliklerden biriside trait.. Peki bu Trait nedir? Trait için dilimizde karşılık olarak özellik diyebiliriz. Trait ler bizim multi inheritance yani çoklu kalıtım yapmamızı sağlar.. Bildiğiniz gibi sınıflar bu şekilde birden fazla kalıtıma imkan vermiyordu ama trait ile artık bu işlemi yapabiliyoruz ve tanımladığımız sınıflara “trait”ler ile yeni özellikler, metodlar ekleyebiliyoruz
php5
Public, Private, Protected, Final, Const , Extends ve Static Kavramları
StandardGünümzde OOP yani Nesne Yönelimli Programlama iyice hayatımızda yerini aldı. Ben bu makale de size OOP ile birlikte hayatımıza girmiş olan bu kavramlardan değinmek istiyorum. Bir çok konu başlığını tek makaleye toplamak ne kadar doğru bilmiyorum ama bi çırpıda hepsi aradan çıksın istiyorum. Küçük küçük örnekler vererek detaylandırmaya çalışacağım…
PDO yani PHP Data Object
StandardPHP 5.1'den itibaren hayatımıza girmiş olan ve başlıktan da anlaşılacağı gibi PDO yani PHP Data Object nedir? Avantajları nelerdir? Biraz detaylandırarak kullanımını ele alacağız...
PHP 5.5 ve Try / Catch / Finally
StandardPHP 5.5 ve Try / Catch / Finally kullanımı
PHP5 ve Final Kavramı
StandardPHP5 ile birlikte hayatımıza giren kavramlardan bir taneside sınıf ve metodlar için getirilen final kavramı…
işin özü final diyerek o metod veya sınıfın bir daha türetilememesini sağlamış bulunuyoruz.
O sınıf türetilmesin bozulmasın vs. diye böyle bir yol izlenebilir, karışık ve zor değil o yüzden direk örnek vereceğim ve taşlar oturacak kafanızda;
Sınıflarda Final Kullanımı
final class FinalSinif { public function abcMethod() { echo "FinalSinif method u çağrıldı"; } } //Compile error verecektir çünkü final sınıfı türetilemez class YeniSinif extends FinalSinif { public function abcMethod() { echo "YeniSinif method u çağrıldı"; } } $onur = new YeniSinif(); $onur->abcMethod();
PHP interface – Arayüzler
StandardHerkese merhaba,
Bugün size php interface den bahsetmek istiyorum. PHP5 ile birlikte hayatımıza giren bir yenilik olan interface i görsel olarak düşünmeyelim. Aslında Yapı yani modelleme arayüzü olarak düşünebiliriz.
Örnek vermek gerekirse; bir veritabanı altyapısı hazırlıyorsunuz ve mysql,pgsql, oracle gibi birden fazla adaptorünüz var. Bu adaptörlerdeki yapıların birbiri ile aynı olmasını istiyorsak burada interface devreye girecek. Veya Cache yapısı kuracaksınız; APC, memcache gibi cache yapıları kullanacaksınız ve yapılar aynı olacaksa interface kullanabilirsiniz. İnsan için interface tanımlayıp kadın erkek sınıflarını bu interfaceten türeterek cins ikisinde de cinsi iki sınıfada oldurmak istiyorsanı kullanabilirsiniz. Örnek çoğaltılabilir bankalar için sanal pos uygulamasında da kullanabilirsiniz vs.vs.
Özetle Bir projede birden fazla geliştiricinin olması gibi durumlarda standart yapının korunması amacı ile hazırlanır,bizim sınıfa bir standart getirmemizi sağlıyor. Yani o standartların dışına çıkamayacağımız bir sınıf yazmamızı sağlıyor. Ve yapı dışında birşey yapılmak istenirse hata sistem hata verir.
Bu standartları koruma nasıl bir fayda sağlayacak derseniz, göz hatası olabilir, dalgınlık olabilir veya başkasının yazdığınız kodları değiştirmesini istemiyorsunuz, burada interface kullanmanız mantıklı olacaktır.
Büyük projelerde özellikle kullanılır.
Veya diyelim framework lerde DB sınıfı için hazırlanmış olan interface kullanılırki çekirdek kodlar bozulmadan kullanıcılar isterse kendi sınıflarını türetsinler, bu sayede sınıf sizi standartlarına uymaya zorlar.
Lafı daha fazla uzatmadan bir kaç örnek vermek istiyorum sizlere;
ilk örneğimde size mysql, mssql gibi farklı veritabanı yapıları ile bağlantı sağlayabileceğiniz bir örnek vereceğim..
interface DB { public function connect(); public function error(); public function errno(); public static function escape_string($string); public function query($query); public function fetch_array($result); public function fetch_row($result); public function fetch_assoc($result); public function fetch_object($result); public function num_rows($result); public function close(); }