Merhaba Arkadaşlar,

Php'de nasıl namespace kullanacağımıza dair bir örnek hazırladım. Aşağıda kodları ve açıklama satırlarını bulabilirsiniz.

ÖRNEK 1 :

<?php

/*
 * Author	: İbrahim HIZLIOĞLU
 * E-Mail	: ibrahim.hizlioglu@gmail.com
 * Web		: http://www.webteders.com
 */

/*
 * Namespace ile içinde sınıfları barındıran bir kütüphane hazırlayabiliyoruz.
 * Bu örnekte "Facebook" ve "Twitter" olmak üzere 2 tane namespace oluşturuyoruz.
 * Ve bu namespace içinde "User" ve "Feed" olmak üzere 2 tane sınıf oluşturuyoruz.
 * Eğer namespace kullanmasaydık aynı ismi taşıyan başka bir sınıf oluşturamayacaktık.
 */
 
# "Facebook" isminde bir namespace tanımlıyorum.
namespace Facebook;

# "Facebook" namespace'i içinde "User" sınıfı oluşturuyorum.
Class User
{
	# "User" sınıfı içinde "data" isminde bir fonksiyon oluşturuyorum.
	public function data()
	{
		return 'Facebook\User';
	}
}

Class Feed
{
	# "Feed" sınıfı içinde "data" isminde bir fonksiyon oluşturuyorum.
	public function data()
	{
		return 'Facebook\Feed';
	}
}

# "Twitter" isminde bir namespace tanımlıyorum.
namespace Twitter;

# "Twitter" namespace'i içinde "User" sınıfı oluşturuyorum.
Class User
{
	# "User" sınıfı içinde "data" isminde bir fonksiyon oluşturuyorum.
	public function data()
	{
		return 'Twitter\User';
	}
}

Class Feed
{
	# "Feed" sınıfı içinde "data" isminde bir fonksiyon oluşturuyorum.
	public function data()
	{
		return 'Twitter\Feed';
	}
}

# "Facebook" namespace'i içinde bulunan "User" Sınıfını tanımlıyorum.
$user1 = new \Facebook\User;
# "Twitter" namespace'i içinde bulunan "User" Sınıfını tanımlıyorum.
$user2 = new \Twitter\User;

# "Facebook" namespace'i içinde bulunan "Feed" Sınıfını tanımlıyorum.
$feed1 = new \Facebook\Feed;
# "Twitter" namespace'i içinde bulunan "Feed" Sınıfını tanımlıyorum.
$feed2 = new \Twitter\Feed;

# Sınıfların içinde bulunan fonksiyonları çağırıyoruz ve sonucu ekrana basıyoruz.
echo '<p>' . $user1->data() . '</p>';
echo '<p>' . $user2->data() . '</p>';
echo '<p>' . $feed1->data() . '</p>';
echo '<p>' . $feed2->data() . '</p>';

?>
ÖRNEK 2 :

namespace.php isminde oluşturduğumuz dosyamız :

<?php

# "Galatasaray" isminde bir namespace tanımlıyoruz.
namespace Galatasaray 
{
	# "Galatasaray" Namespace'ine "Oyuncular" isminde bir sınıf tanımlıyoruz.
	Class Oyuncular
	{
		# "Oyuncular" Sınıfına "Forvetler" isminde bir fonksiyon tanımlıyoruz.
		public function Forvetler()
		{
			return 'Baros, Mehmet Battal';
		}
	}
}

# "Fenerbahce" isminde bir namespace tanımlıyoruz.
namespace Fenerbahce 
{
	# "Fenerbahce" Namespace'ine "Oyuncular" isminde bir sınıf tanımlıyoruz.
	Class Oyuncular
	{
		# "Oyuncular" Sınıfına "Forvetler" isminde bir fonksiyon tanımlıyoruz.
		public function Forvetler()
		{
			return 'Semih, Gokhan';
		}
	}
}

?>
Ve çalıştıracağımız dosyamızıda hazırlıyoruz.

<?php

# Namespace tanımladığımız dosyamızı dahil ediyoruz.
include 'namespace.php';

# "Galatasaray" namespace'i altındaki "Oyuncular" sınıfını tanımlıyoruz.
$galatasaray = new \Galatasaray\Oyuncular;

# "Fenerbahce" namespace'i altındaki "Oyuncular" sınıfını tanımlıyoruz.
$fenerbahce = new \Fenerbahce\Oyuncular;

# "Galatasaray" namespace'i altındaki "Oyuncular" sınıfına ait olan "Forvetler" fonksiyonundan dönen değeri ekrana basıyoruz.
echo '<p>Galatasaraylı Forvetler : ' . $galatasaray->Forvetler() . '</p>';

# "Fenerbahce" namespace'i altındaki "Oyuncular" sınıfına ait olan "Forvetler" fonksiyonundan dönen değeri ekrana basıyoruz.
echo '<p>Fenerbahçeli Forvetler : ' . $fenerbahce->Forvetler() . '</p>';

?>