KategorilerPhp

10 Adımda Nesneye Yönelik PHP Kodlamayı Öğreniyoruz

Selamun Aleyküm.

Bu yazımda “Neden Nesneye Yönelik PHP Kodlamalıyız” başlığından bahsedeceğim ve 10 Adımda Nesneye Yönelik PHP Kodlamayı Öğreniyoruz‘un ilk bölümünü anlatacağım.

Neden Nesne Yönelimli PHP Kodlamayı öğrenmelisiniz?

Web sitelerinin %80’inden fazlası artık PHP ile yazılıyor, bu da web geliştiricilerinin bu programlama dilinde uzmanlaşmasını her zamankinden daha önemli hale getiriyor. PHP temellerini öğrenmek kolay olsa da, profesyonelleri hobicilerden ayıran Nesne Yönelimli PHP bilgisidir.

Nesne yönelimli programlamayı kullanırken, kodu verimli bir şekilde düzenleriz, böylece çalışmak, geliştirmek ve yükseltmek daha kolaydır. Pek çok faydası nedeniyle, Nesne yönelimli PHP zanaatında ustalaşan geliştiriciler, gelişmiş çevrimiçi uygulamalara ihtiyaç duyan şirketler ve işletmeler arasında iş piyasasında sıcak bir metadır.

Bu seriyi Nesne yönelimli PHP’de uzmanlaşma konusunda ciddi olan geliştiriciler için özel olarak yazıyorum. Bu seriyi bitirdiğinizde Nesne Yönelimli PHP de bilgi sahibi değil uzmanlaşmış olacaksınız.

Peki, o zaman ne bekliyoruz? Hadi zaman kaybetmeyelim!

İlk Adım

Classes(Sınıflar), objects(Objeler), methods(Methodlar) ve properties(Özellikler)

Nesne yönelimli programlama, belirli bir konunun tüm değişkenlerini ve işlevlerini tek bir sınıfta gruplandırmanın geleneksel olduğu bir programlama stilidir. Nesne yönelimli programlamanın prosedürel programlama tarzından daha gelişmiş ve verimli olduğu düşünülmektedir. Bu verimlilik, daha iyi kod organizasyonunu desteklemesinden, modülerlik sağlamasından ve kendimizi tekrar etme ihtiyacını azaltmasından kaynaklanmaktadır. Bununla birlikte, küçük ve basit projelerde prosedürel stili tercih edebilirsiniz. Ancak projeleriniz karmaşıklaştıkça, nesne yönelimli kodlama stilini kullanmak daha mantıklı olacaktır.

Bu seri ile en temel terimleri öğrenerek nesne yönelimli programlama dünyasına ilk adımlarınızı atmış olacaksınız.

  • Clasesses(Sınıflar)
  • Objects(Objeler)
  • Methods(Methodlar)
  • Properties(Özellikler)

Sınıf(Class) Nasıl Oluşturulur?

Bir sınıf(class) oluşturmak için belirli bir konuyu işleyen kodu tek bir yerde gruplandırıyoruz. Örneğin, bir bloğun kullanıcılarını yöneten tüm kodu tek bir sınıfa, blogdaki yazıların yayınlanmasıyla ilgili tüm kodu ikinci bir sınıfa ve buna ayrılmış tüm kodu ikinci bir sınıfa gruplayabiliriz. Üçüncü sınıfta ise yorumları gruplayabiliriz.

Sınıfı adlandırmak için büyük harfle başlayan tekil bir isim kullanmak gelenekseldir. Örneğin, kullanıcıları işleyen bir kodu bir User sınıfında, gönderileri işleyen kodu bir Post sınıfında ve yorumlara ayrılmış kodu bir Comment sınıfında gruplayabiliriz.

Aşağıda verilen örnek için , arabalarla ilgisi olan tüm kodları gruplayacağımız bir Car sınıfı oluşturacağız.

class Car {
  // Kodlarımızı yazacağız
}

// Class anahtar kelimesi ile sınıfı oluşturacağımızı belirtiyoruz.

// Sınıfın adını yazıp ilk harfi büyük yapıyoruz.

// Sınıf ismi birden fazla kelime içeriyorsa, her kelimenin ilk harfini büyük harfle yazarız. Bu, Pascal Case olarakta bilinir . Örneğin, ArabaMarkalari , BmwModelleri vb.

// Sınıf ismini de belirledikten sonra süslü parantezlerimizi açıp içerisine kodlarımızı yazabiliriz.

Bir sınıfa özellik nasıl eklenir?

Bir sınıf içinde bir değişken oluşturuyoruz ve bu değişkenin başına public anahtar kelimesini yazıyoruz. Bu şekilde sınıfa ait bir özellik oluşturmuş oluyoruz. Özellikler, diğer değişkenler gibi, dizeler, tam sayılar ve boolean (doğru/yanlış değerler) gibi değerleri kabul edebilir. Car sınıfına bazı özellikler ekleyelim .

class Car {
  public $name;
  public $color = 'white';
  public $hasSunRoof = true;
}

// Public anahtar kelimesini bir özelliğin önüne koyarız.

// Adlandırma kuralı, özellik adını küçük harfle başlatmaktır.

// İsim birden fazla kelime içeriyorsa, ilk kelime hariç tüm kelimeler büyük harfle başlar. Örneğin, $color veya $hasSunRoof . Bu Camel Case stili olarakta bilinir.

// Bir özelliğin varsayılan bir değeri olabilir. Örneğin, $color = 'black'.

// Varsayılan değeri olmayan bir özellik de oluşturabiliriz. Yukarıdaki örnekte $name özelliğinde olduğu gibi.

Birden fazla isimlendirme stili vardır. Bunlardan biri Pascal Case’dir. Diğer isimlendirme stillerini de öğrenmek istiyorsan Yazılımda İsimlendirme Çeşitleri adlı yazıma göz atabilirsiniz.

Bir sınıf(class)’tan Nesneler(Objects) nasıl oluşturulur?

Aynı sınıftan, her nesnenin kendi özelliklerine sahip olduğu birkaç nesne oluşturabiliriz.

Bir sınıfla çalışmak için ondan bir nesne oluşturmamız gerekir. Bir nesne oluşturmak için new anahtar sözcüğünü kullanırız. Örneğin:

$bmw = new Car();

// new anahtar kelimesi ile Car sınıfından $bmw nesnesini oluşturduk.

Aynı sınıftan birden fazla nesne oluşturabiliriz.

$bmw = new Car();
$mercedes = new Car();

Aslında, aynı sınıftan istediğimiz kadar nesne oluşturabilir ve ardından her nesneye kendi özellik değerlerini verebiliriz.

Nesneler(Objects), ne işe yarar?

Prosedürel programlama tarzında, tüm işlevler ve değişkenler , yalnızca adlarını çağırarak kullanımlarına izin verecek şekilde global kapsamda birlikte otururken , sınıfların kullanımı, sınıfların içindeki her şeyi global kapsamdan gizler. Bunun nedeni, sınıfların içindeki kodun , global kapsamın erişiminin dışında, sınıf kapsamı içinde kapsüllenmiş olmasıdır. Bu nedenle, global kapsamdaki kodun sınıf içindeki kodu kullanmasına izin vermenin bir yoluna ihtiyacımız var ve bunu bir sınıftan nesneler oluşturarak yapıyoruz.

Nesne değil nesneler diyorum, çünkü aynı sınıftan istediğimiz kadar nesne oluşturabiliyoruz ve hepsi sınıfın methodlarını ve özelliklerini kullanacaklar. Aşağıdaki resmi inceleyin ne demek istediğimi anlayacaksınız:

Bir araba örneği aracılığıyla nesne yönelimli PHP'de nesneler ve sınıflar 

Aynı Car sınıfından Mercedes , Bmw ve Audi adında üç ayrı nesne oluşturduk .

Tüm nesneler aynı sınıftan oluşturulmuş olmalarına ve dolayısıyla sınıfın yöntemlerine ve özelliklerine sahip olmalarına rağmen, yine de farklıdırlar. Bu sadece farklı adlara sahip oldukları için değil, aynı zamanda özelliklerine atanmış farklı değerlere sahip oldukları için de geçerlidir. Örneğin, yukarıdaki resimde renk özelliklerine göre farklılık gösterirler – Mercedes yeşil, Bmw mavi ve Audi turuncu.

BURADAN ALINACAK MESAJ ŞUDUR:

Bir sınıf, kendisinden oluşturulan tüm nesneler tarafından kullanılan methodları ve özellikleri tutar.

Nesneler aynı kodu kullanmalarına rağmen, kendilerine atanan farklı değerlere sahip olabileceğinden farklı davranabilirler.

Bir nesnenin özellikleri nasıl alınır?

Bir nesne oluşturduğumuzda, özelliklerini alabiliriz. Örneğin:

$bmw = new Car();
echo $bmw->color;

$mercedes = new Car();
echo $mercedes->color;


// Bir nesnenin özelliğini elde etmek için, nesne adını, ardından tire (->) ve ardından özellik adını yazarız. Dikkat edin -> işaretinden sonra sadece özellik adını yazıyoruz. Başına $(dolar) işaretini yazmadığınıza emin olun.
SONUÇ

white
white

Nesnenin özellikleri nasıl ayarlanır?

Bir nesnenin özelliğini ayarlamak için yukarıda yaptığımız özellik çağırma işlemine benzer bir yaklaşım kullanıyoruz.

Örneğin, bmw nesnesinde rengi ‘mavi’ olarak ayarlamak için:

$bmw->color = 'blue';

ve her iki nesne için $name özelliğinin değerini ayarlamak için :

$bmw->name = "BMW";
$mercedes->name = "Mercedes Benz";

Bir özelliğin değerini belirlediğimizde değerini alabiliriz.

$bmw nesnesinin rengini elde etmek için aşağıdaki kod satırını kullanırız:

echo $bmw->color;
SONUÇ

blue

Ayrıca bir nesnenin farklı özelliklerini de alabiliriz. Örneğin;

echo $mercedes->color;
echo $mercedes->name;
SONUÇ

white

Mercedes Benz

Bir sınıfa yöntemler nasıl eklenir?

Sınıflar çoğunlukla fonksiyonlar(işlevler) içerir. Bir sınıf içindeki bir fonksiyona yöntem(method) denir . Burada, public önekine sahip sınıfa hello() method(yöntemi)unu ekliyoruz.

class Car {
 
  public $name;
  public $color = 'white';
  public $hasSunRoof = true;
 
  public function hello() 
  {
    return "bip bip";
  }

}


// Public anahtar kelimesini bir metodun önüne koyarız.

// Adlandırma kuralı, fonksiyon adını küçük harfle başlatmaktır.

// İsim birden fazla kelime içeriyorsa, ilk kelime hariç tüm kelimeler büyük harfle başlar. Buna camelCase stili denir. Örneğin, helloUser() veya helloWhatsApp().

Metotları, özellikleri çağırdığımız gibi çağırırız fakat sonuna parantezlerimizi koymayı unutmayalım. Metotlarımızı da çağırmamız için bir nesne oluşturmamız gerektiğini de unutmayalım.

$bmw = new Car();
$mercedes = new Car();
    
echo $bmw->hello();
echo $mercedes->hello();
SONUÇ

bip bip
bip bip

İşte bu yazı sırasında yazdığımız kodun tamamı:

<?php
// sınıf(class) oluşturuyoruz
class Car {
 
  // özellikleri oluşturuyoruz
  public $name; 
  public $color = 'white';
  public $hasSunRoof = true;
 
   // hello adında metodumuzu oluştuyoruz
  public function hello()
  {
    return "bip bip";
  }
}
 
// Nesnelerimizi(Object) oluşturuyoruz
$bmw = new Car();
$mercedes = new Car();
 
// Nesnelerimizin içinde bulunan özelliklerin değerlerini alıyoruz. Fakat burada color özelliğinin white olarak gelmesi sınıfın içinde varsayılan olarak belirlendiği içindir.
echo $bmw->color; // white
echo "<br/>";
echo $mercedes->color; // white
echo "<hr/>";
 
// Nesnelerimizin içinde bulunan özelliklere yeni değerler atıyoruz
$bmw->color = 'blue';
$bmw->name = "BMW";
$mercedes->name = "Mercedes Benz";
 
// Tekrar nesnelerimizin içinde bulunan özelliklerin değerlerini alıyoruz. Bu sefer yukarda özelliklerimize yeni değer atadığımız için değerlerimiz farklı olarak geldi.
echo $bmw->color; // blue
echo "<br/>";
echo $mercedes->color; // white
echo "<br/>";
echo $bmw->name; // BMW
echo "<br/>";
echo $mercedes->name; // Mercedes Benz
echo "<hr/>";
 
// Metodların kullanımı ve bize döndürdüğü cevap
echo $bmw->hello(); // bip bip
echo "<br/>";
echo $mercedes->hello(); // bip bip

Takıldığınız bir yer olursa yorum yapmaktan veya WhatsApp grubumuzdan yazmaktan çekinmeyin. Sorunuz yanıtsız kalmayacaktır. Kendinize iyi bakın. Bir sonraki yazıda görüşmek dileğiyle. Allah’a emanet olun.