EN İYİ 10 DERS :

PHP Namespace Kullanımı

Php Object Oriented ProgramingBiz yazılımcılar devamlı "daha kolay" işimizi halletmenin yollarını arıyoruz. Çünkü ihtiyaçlarımızın bir sınırı bulunmuyor. Önceden fonksiyonlardan oluşan kodlarımız bulunuyordu ve bunları istediğimiz yerde çağırıp kullanıyorduk. Sonra fonksiyonlar bize yetersiz gelmeye başlayınca sınıflar kullanarak nesne tabanlı yazılımlar hazırlamaya başladık. Artık farklı sınıflarda aynı ismi taşıyan fonksiyonlar, değişkenler vb. tanımlayabiliyorduk. Ve yakın zamanda aynı isimde sınıflar oluşturma ihtiyacımızda oluşunca, php 5.3.0 versiyonu ile namespace'ler yardımımıza yetişti. Namespace kullanarak artık aynı isimde sınıflarıda tanımlayabiliyoruz. Aşağıda 2 farklı örnek ile namespace konusunu anlatmaya çalıştım.

  • ÖRNEK 1 :

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 '

' . $user1->data() . '

'; echo '

' . $user2->data() . '

'; echo '

' . $feed1->data() . '

'; echo '

' . $feed2->data() . '

';

  • ÖRNEK 2 :

Bu örnekte biraz daha gerçek hayata yönelik örnek ile namepace kullanımını anlatmaya çalışacağım. namespace.php isminde bir dosya oluşturalım aşağıda ki kodları namespace.php içine ekleyelim.

// "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';
        }
    }
}

Namespace kodlarımızı hazırladık. Şimdi kodlarımızı bir dosyaya include edip kullanmaya başlayabiliriz. index.php isminde bir dosya oluşturalım ve aşağıda bulunan kodları içine ekleyelim.

// 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 '

Galatasaraylı Forvetler : ' . $galatasaray->Forvetler() . '

'; /* "Fenerbahce" namespace'i altındaki "Oyuncular" sınıfına ait olan "Forvetler" fonksiyonundan dönen değeri ekrana basıyoruz. */ echo '

Fenerbahçeli Forvetler : ' . $fenerbahce->Forvetler() . '

';

Yazıyı Ekleyen Editör :

Yazının Eklenme Tarihi :

İbrahim Hızlıoğlu
12 Ağustos 2010 - Perşembe Günü

Yazının Okunma Sayısı :

Yazının Kategorisi :

1560 Defa Okundu
Php

Bu Yazıya Ait Etiketler :

Php namespace, Php namespace nedir, php namespace nasıl kullanılır, Php namespace örnekleri, Php OOP, Php object oriented, Php sınıflar, Php sınıf kullanımı, Php class, Php class kullanımı, Php nesne tabanlı programlama, Php nesneye yönelik programlama, Php dersler, Php dersi, Php örnekleri, Php 6 örnekleri, Php 6 dersleri, Php 6 ders, Php yazılar, Php 6 örnek kodlar, Php örnek kodlar, Php örnek uygulamalar, Php ders