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>'; ?>
