blog posts

PHP'de sınıf kavramını tanıma

PHP’de sınıf kavramını tanıma

PHP’de sınıf

Birisinin web programlamaya gidip PHP adını duymaması pek olası değildir. Bu dil, şu anda dünya çapında yaygın olarak kullanılan, sunucu tarafı kod yazmak ve yazmak için en iyi dillerden biridir. Bu dilin en önemli avantajlarından biri problemlerin çözümünde nesne yönelimli programlamayı desteklemesidir. Daha sonra PHP’deki sınıflar hakkında daha fazla konuşacağız .

Bu programlama, geliştiricilerin en zor sorunları küçük parçalara ayırmasına ve kolayca çözmesine yardımcı olur. Ücretsiz php eğitimi arıyorsanız bu yazımızda bizimle kalın. Bu makaledeki odak noktamız PHP’de sınıf eğitimidir. Daha da ileri seviye eğitimlere ulaşmak için sitenin diğer bölümlerini ziyaret edebilirsiniz.

 

PHP’ye kısa bir giriş

PHP, sunucu tarafı programlama için kullanılan ücretsiz ve açık kaynaklı bir programlama dilidir. PHP’nin PHP/FI adlı ilk sürümü 1994 yılında Razmoz Lerdorf tarafından oluşturuldu. Bu sürüm, C programlama dili kullanılarak yazılmış, portlu bir genel arayüzün (CGI) ikili kodundan başka bir şey değildi.

Lerdorf daha sonra özgeçmişinde bu projeye isim vermek için PHP Araçlarının kısaltması olan Kişisel Ana Sayfa Araçlarını kullandı. Bu PHP Araçları çekici bir fikir gibi görünüyordu, ancak yine de bir web programlama dili haline gelebilecek özelliklerden yoksundu. Sunucu tarafı programlama için veritabanı etkileşimi gibi olanaklar gerekiyordu.

Zamanla Razmoz Lerdorf bu eksiklikleri gidermeye başladı ve sonunda Eylül 1995’te ilgilenen programcılar için PHP Tools kaynak kodunu yayınladı. Amacı, dünya çapındaki programcıların deneyimlerini kullanarak koddaki sorunları çözmekti. Daha sonra Araçlar bölümü PHP’den ayrılarak FI veya Forms Interpreter olarak PHP‘nin yanına yerleştirildi.

 

PHP uygulamaları

PHP programlama dili genellikle aşağıdakiler için kullanılır:

  • Web sayfaları için dinamik içerik oluşturun
  • Sunucuda dosya oluşturun, açın, okuyun, yazın, silin ve kapatın
  • Veri toplama
  • Çerezleri gönderme ve alma
  • Veritabanına veri ekleme, silme ve düzenleme
  • Kullanıcıların ve üyelerin erişim düzeyini kontrol edin
  • Veri şifreleme

PHP kullanmanın özellikleri ve faydaları

Bu programlama dili şu anda kullanım ve gelir açısından dünyanın ilk on dili arasında yer almaktadır. Bu yaygın popülerliğin nedenleri aşağıda bulunabilir:

  • PHP açık kaynaktır.
  • PHP tüm platformlarda çalışır.
  • PHP günümüzde kullanılan tüm sunucu türleriyle uyumludur.
  • PHP mevcut çoğu veritabanını destekler.
  • PHP ücretsiz ve sınırsızdır.
  • PHP’yi öğrenmek kolaydır.
  • PHP’nin yürütmedeki optimizasyonu çok yüksektir.

objektif programlama

Programlama bir kavram olarak bilgisayar bilimine girdiğinde, mevcut tek stil “prosedürel programlama” (yukarıdan aşağıya) idi. Bu yöntemde sorun bir dizi komut koduyla çözülür. O dönemde bu çözüm mevcut tüm ihtiyaçları karşılıyordu; Ancak programlama dünyası genişledikçe ve ortaya çıkan sorunlar zorlaştıkça bu eski yöntem artık uygulanamaz hale geldi.

Eski programlama sorunları ile yeni sorunlar arasındaki farkı anlamak için günümüzün yazılım ve sitelerinden birini 20 yıl önceki yazılım ve sitelerle karşılaştırmanız yeterlidir. Bu sayfaların birçok bileşeni ve içlerindeki yapısal karmaşıklıkların tümü, nesne yönelimi sayesinde mümkün olmaktadır.

Nesne yönelimli programlama, sistemin genel görevlerini bir dizi nesneden sorumlu kılmak anlamına gelir. Her nesne iki bölümden oluşur. İlk bölüm o nesnenin özelliklerine ilişkin bilgiler, ikinci bölüm ise beklenen davranışı belirleyen yöntemlerdir. Sistemin tamamındaki her nesne, bu görevleri doğru bir şekilde gerçekleştirmek için bilgi ve davranışların yerleştirildiği görevin bir kısmından sorumludur.

Nesneye Yönelik (OOP) yalnızca yeni bir yazı türünü içermiyor; Daha ziyade programlamada yeni bir tutumu ifade eder. Klasik görüşte ve prosedürel programlamada problem çözme bir dizi komut aracılığıyla yapılıyordu; Nesne yönelimli programlamada bu, verilerle çalışılarak gerçekleşir.

Nesne yönelimini gerçek dünyadan bir örnekle açıklamak istersek bir organizasyondaki işbölümünden söz edebiliriz. Örgütün her biriminin bir nesne gibi kendine ait bilgi ve davranışları vardır ve tüm birimlerin çalışmalarının sonucu genel sorunun çözülmesi (örgütün hedeflerine ulaşması) olur.

Nesne yöneliminin avantajları

Nesne yönelimi kodu hiçbir şekilde kısaltmaz. Nesne yöneliminin temel avantajı, karmaşık problemleri birkaç parçaya bölerek (böl ve yönet yöntemi) daha optimal bir şekilde çözmektir. Prosedürel programlamada, büyük bir problemle uğraşırken, nesne yönelimi bu büyük problemi birkaç küçük probleme böler. Açıkçası, birkaç küçük sorunu çözmek, büyük bir sorunu çözmekten daha kolay olacaktır. Nesne yönelimli programlamanın genel avantajları şunlardır:

  • Hız ve uygulama kolaylığı
  • Programların şeffaf yapısı ve bunun sonucunda hataların bulunması ve kodun düzenlenmesi daha kolaydır
  • Tekrarlanan komutlardan kaçının
  • Bir nesnenin çoklu kullanım imkanı ile program geliştirme süresinin azaltılması

PHP’de nesne yöneliminin temel kavramları

PHP’de nesne yönelimini öğrenmek için PHP’de nesne ve sınıf gibi kavramları bilmek gerekir. PHP’de nesne yöneliminin temel kavramları şunlardır:

Sınıf

Sınıf, programcı tarafından tanımlanan bir veri türüdür. Sınıfta veriler ve işlevler yerel olarak mevcuttur.

nesne

 Programcı tarafından tanımlanan veri türüne örnek olarak sınıf verilebilir. Örneğin muz, mandalina, elma vb. meyvelerin her biri meyve sınıfının nesneleridir.

değişken üye

Bir sınıf içinde tanımlanan değişkenlere üye değişkenler denir. Bu üyelere sınıf dışından erişim ancak o sınıfın üye fonksiyonları aracılığıyla yapılabilir.

üye işlevi

 Sınıf içindeki değişkenlere erişmek için sınıfın dışında kullanılan, sınıf içinde tanımlanan işlevler.

miras

Bazen bir sınıf, başka bir sınıfta tanımlanan işlevleri ve değişkenleri miras alır. Bu durumda mirasçıya “çocuk” sınıfı, mirasçıya da “ebeveyn” sınıfı denir.

polimorfizm

Bu özellik, fonksiyonun farklı amaçlarla kullanılabileceği anlamına gelir. Örneğin, işlevin adı aynı kalır ancak farklı sayıda argüman alır ve farklı görevleri gerçekleştirir.

Aşırı yükleme

Bağımsız değişkenin türüne bağlı olarak tüm operatörlerin veya bazı operatörlerin farklı uygulamalara sahip olduğu bir tür polimorfizm.

veri soyutlama

Uygulama ayrıntılarının gizlendiği verilerin herhangi bir temsiline soyut veri adı verilir.

Kapsülleme

Bu kavram, sınıfın tüm üyelerinin ve verilerinin ondan bir nesne oluşturacak şekilde kapsüllenmesi anlamına gelir.

Yapıcı işlevi

Bir sınıfın bir nesnesi başlatıldığında, sınıfın yapıcı işlevi çağrılır.

Yıkıcı işlev

Nesneyle işimiz bittiğinde ve onu temizlemek veya kullanılamaz hale getirmek istediğimizde bu nesneyi çağırırız.

PHP’de sınıf tanımı

PHP’de bir sınıfı tanımlamanın genel şekli aşağıdaki gibidir:

<?php
   class phpClass {
      var $var1;
      var $var2 = "constant string";
      
      function myfunc ($arg1, $arg2) {
         [..]
      }
      [..]
   }
?>

Aşağıda bir mağazadaki kitaplar için sınıf tanımı örneğinden bahsederek PHP’de sınıf konusuna sizler için açıklık getireceğiz:

<?php
   class Books {
      /* Member variables */
      var $price;
      var $title;
      
      /* Member functions */
      function setPrice($par){
         $this->price = $par;
      }
      
      function getPrice(){
         echo $this->price ."<br/>";
      }
      
      function setTitle($par){
         $this->title = $par;
      }
      
      function getTitle(){
         echo $this->title ." <br/>";
      }
   }
?>

PHP’de bir sınıftan nesne oluşturma

Bir sınıf oluşturduğunuzda, sayısız örnek (nesne) oluşturabileceğiniz kendi “veri türünüz” olur. Bu kitap örneğinde mağazamızdaki kitaplar için “fizik”, “matematik” ve “kimya” olmak üzere üç kategori tanımlamak istediğimizi varsayalım.

$physics = new Books;
$maths = new Books;
$chemistry = new Books;

İşlevlerin çağrılması

İstenilen nesne veya nesneleri oluşturduktan sonra onlarla çalışmak için sınıf üyesi fonksiyonları kullanırız. Sınıf işlevleri, sınıf değişkenleriyle çalışmak veya bunları başlatmak için kullanılır. Yine kitap örneğine dönüyoruz ve bu sefer her kategoriye (nesneye) belirli bir isim ve fiyatla bir kitap eklemek istiyoruz.

$physics->setTitle( "Physics for High School" );
$chemistry->setTitle( "Advanced Chemistry" );
$maths->setTitle( "Algebra" );

$physics->setPrice( 10 );
$chemistry->setPrice( 15 );
$maths->setPrice( 7 );

Ve daha sonra:

$physics->getTitle();
$chemistry->getTitle();
$maths->getTitle();
$physics->getPrice();
$chemistry->getPrice();
$maths->getPrice();

PHP’de yapıcı ve yıkıcı sınıf işlevleri

Yapıcı işlevler, nesne oluşturulduğunda otomatik olarak çağrılan özel işlev türleridir. Bu özellik, nesne oluşturma sırasında sınıf değişkenlerini başlatmak için kullanılabilir. PHP’de bu işlev Construct__() olarak kullanılır ve herhangi bir sayıda argüman iletmek için kullanılabilir. Kitapçı örneğinde yeni bir kitabın adını ve fiyatını aynı anda girmek istediğimizi varsayalım:

function __construct( $par1, $par2 ) {
   $this->title = $par1;
   $this->price = $par2;
}

Artık önceki bölümde olduğu gibi önce nesneyi oluşturup değerlerini ayrı bir bölümde ayarlamanıza gerek yok. Nesnelerin yapımı aşağıdaki gibi olacaktır:

$physics = new Books( "Physics for High School", 10 );
$maths = new Books ( "Advanced Chemistry", 15 );
$chemistry = new Books ("Algebra", 7 );

/* Get those set values */
$physics->getTitle();
$chemistry->getTitle();
$maths->getTitle();

$physics->getPrice();
$chemistry->getPrice();
$maths->getPrice();

Yıkıcı işlevler, sınıfı ve ilgili tüm nesneleri ve boş belleği yok eder.

Final sonucu

PHP, dinamik web sayfaları oluşturmak için açık kaynaklı ve hızlı bir dildir. Bu dili kullanarak yüksek kaliteli ve güçlü sunucu tarafı kodları yazabilirsiniz. Nesne yönelimi bu dilde özel bir rol oynar (sunucu tarafı programlamadaki karmaşık algoritmalar nedeniyle). Bu yazıda PHP dilini ve ana avantajlarını tanıtmanın yanı sıra, PHP’deki nesne yöneliminin ayrıntılarını ve kavramlarını size tanıtmaya çalıştık.