PHP 5 ile OOP ( Object Oriented Programming ; Nesne Tabanlı Programlama ) kavramına giriş

OOP mimarisinin sadece masaüstü programlarda değil web tabanlı programlamada da önemli bir yeri vardır. JavaScript'de dahi OOP mimarisinin bulunması dikkat çekici bir durum. İstediğimiz işlemleri yapabilen bir class oluşturup nesnelerle çalışmak büyük projelerde bize kolaylık sağlar. Bu sebepten PHP projelerinde OOP mimarisi kullanmak hem daha profesyonel hem daha esnek yapılar oluşturmamızı sağlar. MVC gibi tamamen nesne tabanlı mantığına dayalı kavramların sık sık duyulması da bu sebeptendir.

PHP 5 ile basit bir class oluşturup nesne tabanlı programlamaya basit bir giriş yapalım. ilk örneğimizde bir classın temel metotları olan __construct ve __destruct metotlarını inceleyelim.
__construct : class oluşturulduğunda otomatik çağrılan metot.
__destruct: class ile ilgili işlemler bitince otomatik çağrılan metot.

Bununla ilgili basit bir örnek yapalım: ( Object Oriented Programming ; Nesne Tabanlı Programlama )

class A

{
public function __construct()

    {
    echo "Merhaba<br />";
    }

public function __destruct()

    {
     echo "Güle  Güle<br />";
    }

}
$a = new A();

Yukarıdaki örnek ilk olarak Merhaba ve sonraki satırda "Güle Güle" yazdırır. new A() yordamıyla class türetilir ve __construct mototu çağrılır, işlem bitince __destruct metotu çağrlır. public yordamı ile class her yerden erişebilir hale gelir.

Şimdi Session işlemlerini yapan biraz daha karmaşık bir class oluşturalım. Class'ın ismi session olsun. Dosyayı
session.class.php olarak adlandıralım.
Class'ı session ile ilgili bir kaç işlemi bizim yerimize yapacak bir şekilde yazarsak daha işlevsel hale getirebiliriz. ( Object Oriented Programming ; Nesne Tabanlı Programlama )session.class.php :


class session
{
	// ( Object Oriented Programming ; Nesne Tabanlı Programlama )
	/*
	*session id web browsera yollanırken verilecek isim
	*/
	const SESSION_NAME = 'SESSION_ID';

	/*
	* class yaratılınca çağrılacak metot
	* return @void
	*/
	public function __construct ()

	{

		session_name(self::SESSION_NAME);
		session_start();

	}
	/*
	* session yaratmak için kullanılacak metot
	* return @string
	*/
	public function  createSession($name,$value)

	{

		$_SESSION[$name]=$value;

	}
	/*
	* session değişkenini almaya yaracak metot
	* return @string
	*/
	public function getSession($name)

	{
			return $_SESSION[$name];
	}

	/*
	* session değişkenini ya da tümünü silecek metot
	* return @boolean
	*/
	public function deleteSession($name,$all=false)

	{

		if ($all)

			{

			session_destroy();

			return true;

			}

		if  (isset($name))

			{
			unset($_SESSION[$name]);
			session_unregister($name);

			return true;

	 		}

	 	return false;

	}
	/*
	* session id almaya yarayan metot
	*  return @string
	*/
	public function getSessionId($reGenerate=false)

	{

		if ($reGenerate)
			session_regenerate_id();

		return session_id();

	}
	/*
	* aranan session değişkenin varlığını kontrol eden metot
	* return @boolean
	*/
	public function isSessionExist($name)

	{

		if(session_is_registered($name))

			return true;

		else

			return false;

	}
	/*
	* session değişkenlerin sunucuda kaydedileceği yeri döndüren metot
	* return @string
	*/
	public static function getSessionPath()

	{
	return session_save_path();
	}
	/*
	* classla ilgili işlemler bittiğinde çağrılacak metot
	* return @void
	*/
	public function __destruct()

	{
	}

}
Class içinde session değerlerini ayarlamak ve almak için set ve get ile başlayan metotlar yazdık.
Şimdi session classı kullanacağımız session adında php dosyası yaratıp aşağıdaki php kodlarını yazıp session classı test edelim: ( Object Oriented Programming ; Nesne Tabanlı Programlama )
//session classımızı sayfaya dahil ediyoruz
include_once 'session.class.php';

$session=new session(); 
//session değişkeni yaratıp değerinisetediyoruz 
$session->createSession('session_değişken_ismi','session_değişken_değeri'); 
echo "Session id:"; echo$session->getSessionId();
echo "<br />Session değişkenleri: ";
echo "<br />session_değişken_ismi:".$session->getSession('session_değişken_ismi'); 
$session->deleteSession('session_değişken_ismi'); 
//session silindiğinden aşağıdaki satırda sessionbulunamayacaktır. 
echo $session->getSession('session_değişken_ismi');
; Kodu çalıştırdığımızda aşağıdaki çıktıyı elde ediyoruz:

session

Session class örneğimizde özetle temel session işlemlerini yapan metotları yarattık. __construct ve __destruct gibi otomatik çağrılan meotları yarattık.


PHP 5 ile nesne tabanlı programlamaya basit bir giriş yaptıktan sonra aşağıdaki kavramları da öğrenmekte fayda var.

Class and Method Modifiers ( Class ve motot özelliklerini değiştirmek için kullanılır ) ( Object Oriented Programming ; Nesne Tabanlı Programlama ) :
  • public (metotlar ve değişkenler için)
  • private (metotlar ve değişkenler için)
  • protected (metotlar ve değişkenler için)
  • static (metotlar ve değişkenler için)
  • const (metotlar ve değişkenler için)
  • final (class, metot ve değişkenler için)
  • abstract (class, metot ve değişkenler için)
  • interface (sadece class için kullanılır)

Overloding methods (PHP 5 motoru tarafından otomatik çağrılan metotlar)
( Object Oriented Programming ; Nesne Tabanlı Programlama ) :
  • __construct
  • __destruct
  • __clone
  • __get
  • __set
  • __isset
  • __unset
  • __toString
  • __call
  • __callStatic
  • __sleep
  • __wakeup
  • __invoke
  • __set_state
PHP 5 OOP ile ilgili referans kaynak için: Object Oriented Programming - Nesne Tabanlı Programlama ( Object Oriented Programming ; Nesne Tabanlı Programlama )
yazan Zülküf Küçüközer tarih   14th August 2009
primary key words  Oop | Object oriented | Nesne tabanlı | Php okunma  25667
secondary key words  Class oluşturma | Session | Class | Programlama
writing Kadir writing 11th August 2010
Tebrik ederim oldukça sade ve güzel bi anlatım olmuş, Ayrıca sitenizi baştan sona inceledim oldukça yaralı paylaşımlar yapmışsınız başarılarınızın devamını dilerim...
writing nurettin writing 27th August 2010
Güzel bir döküman teşekkurler
writing zülküf küçüközer writing 28th August 2010
ben teşekkür ederim :)
writing safak saracoglu writing 20th December 2011
çok teşekkür ederim açıklayıcı ve eşsiz bir paylaşım olmuş
writing Fettah Kurtulus writing 2nd March 2012
Teşekkürler paylaşım için yararlı bir post olmuş
writing levent writing 19th August 2013
örnekler yerinde olmus basarili ve açik bir anlatim. tesekkürler.
writing Serhat SABUNCU writing 30th November 2013
PHP 5 OOP ile ilgili kisa ve öz bir anlatim. Tesekkürler
writing Detayakademi writing 19th February 2014
Çok açiklayici bir yazi. Biz gibi yeni php ögrenenler için güzel bir yazi elinize saglik.
writing katalog writing 4th May 2014
merhabalar... OOP için gerçekten çok tesekkrüler ama yazi 2009 a ait... yeni okuyan arkadaslar kodlari uyguladiginda hata alabilirler çünkü; PHP 5.3.0 ve üst php versiyonlarinda, session_is_registered, session_unregistred, session_registred, vb komutlar kalkti..
writing katalog writing 4th May 2014
o komutlarin yerine; if(isset($_SESSION[$name])), unset($_SESSION[$name]), $_SESSION[$name]='deneme', kullanilabilir. Bilginizde olsun...
writing Serif writing 8th October 2014
Çok tesekkürler :)
writing Ferid writing 9th May 2015
Tesekkür ederim ders için. sade ve güzel bir anlatim olmus