PHP: Nesne Yönelimli Programlama - Ders 2


Bir önceki yazımda OOP nedir, class nasıl tanımlanır ve class'lar ile ilgili temel bilgilerden bahsetmiştim. Bu yazımda ise görünürlükten bahsedeceğim.

Görünürlük Nedir? 

Özellik veya metotlara verdiğimiz, erişme yetkisine denir.

public: Heryerden erişmek için public kullanılır.

private: Yalnızca sınıfın kendi içinde erişmek için private kullanılır.

protected: Sınıfın kendi içinde ve miras alınan sınıflarda erişmek için protected kullanılır.



WakeApp - Dikkat SMS ile uyandırır

{Code of Empires} ekibimiz ile ilk android uygulamamız WakeApp hazır.

WakeApp Nedir?
Kısaca telefonunuza gelen sms ile alarmınızı tetikleyen bir uygulama. Telefonunuza kendi belirleyeceniz anahtar kelime ile mesaj aldığınız anda telefonunuzun alarmı çalmaya başlar.

WakeApp Ne İşe Yarar?
Kullanım amacına göre şekillenir. Örneğin telefonunuz sessizde veya sesi kısık, bir yere koydunuz ama bulamıyorsunuz. Herhangi sms atabilen telefondan #uyan diye kendinize mesaj atıyorsunuz ve telefonunuz son seste çalmaya başlıyor. Mutlu son telefonunuzu buldunuz. 

İkinci bir kullanım şekli arkadaşınızı, tanıdığınızı arıyorsunuz arıyorsunuz açmıyor, bahanesi telefonum sessizde kaldı.Bu arkadaşınıza #uyan diye mesaj attığınızda malesef bu bahane de ortadan kalkıyor. Gene dönmüyorsa bilinki sizinle konuşmak istemiyor.



PHP: Nesne Yönelimli Programlama Giriş

Nesne yönelimli programlama bir başka deyişle OOP( Object Oriented Programming) büyük çaplı projelerde kodlarınızı karmaşıklıktan kurtarmak için kullandığımız programlama yaklaşımıdır.

E-ticaret, portal gibi platformları OOP'siz yani yapısal programlamayla yazmaya kalkışırsanız ilk başlarda rahat gelir fakat özellik ekledikçe yazılım sizin kontrolünüzden çıkar. Takım çalışması için de berbat bir durumdur. 

OOP'yi kısaca bir problemi parçalara bölüp, bu parçaları da nesnelere dönüştürerek çözüme ulaştırmak diye açıklasam sanıyorum yanlış olmaz. Daha detaylı bilgi için wikipedia açıklamasını okumanızı tavsiye ederim.

Yazımın başında belirtmek istediğim bir konu daha var. Takım çalışması için OOP'de tek başına yeterli değildir. Günümüzün popüler tasarım mimarisi MVC'yi kullanmanızı şiddetle tavsiye ediyorum. Eğer yazılıma yeni başlıyorsanız ilk öğreneceğiniz yapısal programlama olmalıdır.  Ardından OOP en son olarak da MVC mimarisinde bir framework olmalıdır. Aksi takdirde bir şeyler hep eksik kalır.

Örnek vereyim yapısal programlamada for, foreach, while, do while gibi kodların aralarında ki farkları bilmeden yada OOP'de User::find(1); ifadesinin statik fonksiyon olduğunu bilmeden bir sonraki aşamaya geçerseniz programlamanız hiç bir zaman tam oturmaz.

Neyse bu kadar ön bilgiden sonra geçelim anlatıma. Anlatım sırasını tartışmasız en iyi php kaynağı php.net'e göre hazırladım.



PHP Kod Standartları

Kurumsal bir firmada çalışıyorsanız yada kendi ekibinizle kod yazıyorsanız. Kodların düzeni çoğunlukla sorun olmuştur. Kimi her gördüğü ifadeyi UpperCase yazar kimi camelCase. Kimi if'in yanına süslü parantezi "{" kimi alt satırına süslü parantezi koyar. Böyle uzayıp gider.

Sonuçta her türlü  yazdığınız kod çalışır fakat sizin kodlarınıza başka biri baktığı zaman yada tam tersi siz başkasının kodlarına baktığınız zaman bi afallarsınız. Bu ufak tefek detaylar yüzünden projeler uzayıp gider ve sizi daha çok uğraştırır. 

Çözüm nedir?

Projeye başlamadan önce neyi nasıl kullanacağınızı karar verin, karar vermiş olduğunuz kuralların dökümantasyonunu hazırlayın. Bu sizin ekibinizin kod standartı olacaktır. Fakat bu yöntem hem sizi uğraştırır hem de yeterli değildir çünkü çalışma arkadaşlarınız değiştiğinde standartlarınızda  zırt pırt değişir. Daha güzel bir yöntem var o da yazılım dünyasının abileri toplanmış oylama sonucu belli kurallar belirlemişler ve bu kuralları oylamaya devam ediyorlar. Bu çatının adı "PHP Framework Interop Group". Sizlerde bu gruba katılabilir yorumlarda bulunabilirsiniz.

Kimler var?

  • CakePHP
  • Composer
  • Doctrine
  • Joomla
  • Laravel
  • phpBB ...

    PSR - PHP Standart Tavsiyeleri

    PHP-FIG tarafından 4+1 konu ele alınmış. Bunlar:

    • PSR-0 : Autoloading(Otomatik Yükleme) Standartları { Artık Önerilmemektedir. PSR-4 yeni alternatifidir }
    • PSR-1 : Temel Kodlama Standartları
    • PSR-2 : Kodlama Stili 
    • PSR-3 : Logger Interface
    • PSR-4 : Geliştirilmiş Autoloader


  • CreateJS - HTML5 Kütüphanesi: Giriş

    HTML5 ile gelen elementlerin başında canvas elementi gelir. Site kodlamanın başına <!DOCTYPE html> yazınca siteniz HTML5 standartlarına uygun hale geliyor. Fakat bunu yazınca yada audio tag'ini kullanınca HTML5 biliyorum diyenlerden olmayın. HTML5 vs Flash kapıştırmaların asıl nedeni grafik yorumlayan canvas elementidir. Türkçe karşılığı tuvaldir.

    Canvas elementi internete yeni bir bakış açısı getiriyor. Bolca animasyonlu, "janjanlı" siteler yapmak mümkün. Fakat düz javascript ile canvas elementini işlemek, uzunca kodlar yazmanızı gerektirir buda belli süre sonra sıkılmanıza ve kodların karmaşık hale gelmesine sebep olabilir. Lafı çok uzatmadan CreateJS kütüphanesine geçelim.