Php Oop Dersleri 4

Merhaba arkadaşlar,

Php oop dersleri konumuza kaldığımız yerden devam ediyoruz. Bir önceki yazımızda oop mimarisinde kullanabileceğimiz sihirbaz metotları ele almıştık. Bu yazımızda ise şimdiye kadar olan tüm derslerin genel bir özetini kapsayacak örnek bir sınıf oluşturacağız ve nesne tabanlı programlama yapısını daha iyi anlayacağız inşallah 🙂

Örnek sınıfımız oturum işlemlerini temel düzeyde yapacağımız bir session sınıfı olacak. Bu sınıfımızda oturum başlatma sonlandırma gibi işlemlerimizi yapacağız. Ne yapacağımız ile ilgili kafanızda bir şeyler canlandı sanırım. Dilerseniz hemen başlayalım. İlk olarak class komutuyla yeni bir sınıf oluşturalım. Ancak bu sınıfımızı final komutuyla tanımlayalım. Gizlilik konumuzdan hatırlayacağınız üzere final komutunu koruma amaçlı ve başka bir sınıf tarafından türetilememesi için kullanıyorduk. Şimdi sınıfımızı oluşturalım.

<?php
   final class Session {
   
   }
?>

Sınıfımızı oluşturduktan sonra oturumları başlatacak olan metodumuzu yazalım. Bu metodumuz çok fazla bişey yapmayacak şimdilik bizim için session_start() demesi yeterli 🙂 Bu metodumuza static olarak tanımlayalım. Gizlilik konusunda static komutunu sadece argümanlarda kullanmıştık şimdi de metodlarda kullanalım zaten yazım olarak  pek bir farkı yok.

<?php

   final class Session {

      public static function init(){
         session_start();
      }

   }

?>

Bu metodumuzu static olarak tanımlamamızın bir diğer sebebi de sınıf dışından erişimi sağlamak. Şu an sınıfımız oturumu başlatan bir metoda sahip. Şimdi de oturumu sonlandıracak olan metodumuzu yazalım. Bu metodumuzu da static olarak tanımlıyoruz.

<?php

   final class Session {

      public static function init(){
         session_start();
      }
      public static function logout(){
         session_destroy();
      }

   }

?>

Sihirbaz metotlar konumuzdan da bir şeyler yapalım ki bir faydası olsun 🙂 Şimdide sınıfımıza sınıfın adını ve özellikleri yazdıran __toString sihirbaz metodumuzu ekleyelim. Bunun için sınıfın adını taşıyan name adında bir private değişken, sınıfın özelliklerini taşıyan properties adında bir public değişken oluşturalım.

<?php

   final class Session {
      
      private $name      = "Oop Dersleri Örnek Session Sınıfı";
      public $properties = "Oturum başlatma,kapatma vs.";
      
      public static function init(){
         session_start();
      }
      public static function logout(){
         session_destroy();
      }

      public function __toString(){
         echo $this->name." - ".$this->properties;
      }

 }

?>

Tekrar bir hatırlayacak olursak sınıf içerisinde ki bir metot veya değişkene ulaşmak için $this komutunu kullanıyorduk.  Burada unutmamamız gereken şey ise bir metoda erişirken metot isminin yanına ( ) işaretlerini koymamız gerekiyordu.

Artık sınıfımız oturum başlatıp sonlandırabiliyor . Şimdi ise oturumumuza değer ekleyecek olan set metodumuzu ve bize oturumdan değer döndürecek olan get metodumuzu yazalım. Oop mimarisinde set ve get metodları çok kullanılır. Yukarıda da söylediğim gibi bir sınıf içerisinde ki bir argümana veya metoda değer eklemek set ve sınıf içerisinden her hangi bir değer almak için ise get kullanılır. Daha doğrusu global olarak bu işlemleri yapan metotlara get ve set adı verilir demek daha doğru olur 🙂

Şimdi ilk olarak set metodumuzu yazalım.

<?php

   final class Session {
      
      private $name      = "Oop Dersleri Örnek Session Sınıfı";
      public $properties = "Oturum başlatma,kapatma vs.";
      
      public static function init(){
         session_start();
      }
      public static function logout(){
         session_destroy();
      }

      public function __toString(){
         echo $this->name." - ".$this->properties;
      }

      // Set metodumuz
      public static function set($key, $value){
         $_SESSION[$key] = $value;
      }

 }

?>

Burada farklı olarak set metodumuz iki adet parametre almaktadır. $key parametremiz dizinin anahtarını $value ise değerini belirtir. Şimdi de get metodumuzu yazalım. Get metodumuz sadece bir parametre alacak ve bu parametre ile dizinin hangi elemanının verisini almak istediğimizi metodumuza söylemiş olacağız.


<?php

   final class Session {
      
      private $name      = "Oop Dersleri Örnek Session Sınıfı";
      public $properties = "Oturum başlatma,kapatma vs.";
      
      public static function init(){
         session_start();
      }
      public static function logout(){
         session_destroy();
      }

      public function __toString(){
         echo $this->name." - ".$this->properties;
      }

      // Set metodumuz
      public static function set($key, $value){
         $_SESSION[$key] = $value;
      }

      // Get metodumuz
      public static function get($key){
         if(isset($_SESSION[$key])){
            return $_SESSION[$key];
         }else{
            return false;
         }
      }
   }
?>

Artık sınıfımız kullanıma hazır. Yukarıdaki kodlarımızı class.session.php olarak ana dizinimize kaydediyoruz. Şimdi index.php yada siz nasıl dilerseniz başka bir dosya oluşturalım ve içine yazmış olduğumuz sınıfımızı include edelim. İlk olarak sınıfımızı başlatmadan önceki derslerimizde bahsettiğimiz gibi sınıf dışından init metoduyla oturumu başlatıp set metodumuzla içine bir şeyler ekleyelim. Daha sonra eklediğimiz değeri ekrana basalım ve logout metodumuzla oturumu kapatalım.


<?php

   include('class.session.php');

   Session::init();

   Session::set('login', true);

   echo Session::get('login');

   Session::logout();

?>

Bu betiği çalıştırdığımızda ekrana “1” çıktısını verecektir. Sınıf dışından bir metoda erişmek istediğimiz zaman Sinifadi::metot() şeklinde erişiyorduk. Sınıfımızın yaptığı işlemi normal php kodlarıyla açıklayarak konumuzu netleştirelim.


<?php

   session_start();

   $_SESSION['login'] = true;

   echo $_SESSION['login'];

   session_destroy();

?>

Şeklinde de yine “1” çıktısını verecektir. Şimdi de sınıfı başlatıp aynı işlemi yapalım ve php oop dersleri yazımızı burada bitirelim.


<?php

   include('class.session.php');

   $session = New Session();

   $session->init();

   $session->set('login', true);

   echo $session->get('login');

   $session->logout();

?>

Umarım faydalı olur arkadaşlar. Şimdiye kadar olan oop dersleri yazılarımızın genel olarak bir tekrarını yaptık ve daha iyi anladığınızı düşünüyorum. Bir sonraki yazımızda görüşmek üzere kendinize iyi bakın 🙂

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Solve : *
29 − 15 =