PHP Namespace

Merhaba,

Nedir bu namespace diyerek Google’nin başına geçmiş, araştırmalar yapmış ve tam olarak kafanıza oturmadan çalışmaları sonlandırmış olabilirsiniz. Biraz gerçekçi senaryolar üzerinden giderek sonuca ulaşmaya çalışalım.

– library

– Form

– Data.php (class Data)

– Database

– Data.php (class Data)

Şeklinde iki adet Data.php dosyalarına tanımlanmış Data isimli sınıflarımız var. Buraya kadar sorun yok. Şimdi bunları aynı sayfa üzerinde çalıştırmaya çalışalım.

<?php

require_once('library/Form/Data.php');

require_once('library/Database/Data.php');

$object1 = new Data();

$object2 = new Data();

?>

İşte burada işler karıştı ve fatalı yediniz. PHP size kızdı. Muhtemelen kullandığınız IDE bile size kızdı. Yazıklar olsun dedi. PHP 5.3.x ile beraber gelen namepsace bu konuda bize çözüm sağlıyor.

library/Database/Data.php :

<?php

namespace Database;

class Data{

}

?>

library/Form/Data.php

<?php

namespace Form;

class Data{

}

?>

Şimdi namepsace ile doğru kullanımına geçelim

<?php

require_once("library/Database/Data.php");

require_once("library/Form/Data.php");

$object1 = new \Database\Data();

$object2 = new \Form\Data();

?>

Evet şimdi işlet tıkırında giti ve PHP’de IDE’de kızmadı bize. Çalıştı. Eğer namespace kullanmamış olsaydık 2. Data classımız için Data yerine başka belkide anlamsız bir isim vermek zorunda kalacaktık. Özellikle büyük çaplı projelerde iç içe klasör yapıları ve classlar ile daha anlamsız class isimleri oluşturmak durumunda kalacaktık. Buda kod okunurluğunu ve OOP yapısına uygun olmayan sonuçlar doğurabilirdi.

Umarım faydalı olmuştur.

2 Comments

    PHP Namespace | yusufozkay

    […] Nedir bu namespace diyerek Google’nin başına geçmiş, araştırmalar yapmış ve tam olarak kafanıza oturmadan çalışmaları sonlandırmış olabilirsiniz. Biraz gerçekçi senaryolar üzerinden giderek sonuca ulaşmaya ç… Devamı için : PHP Namespace […]

    PHP Namespace « Musa Usta'nın Yeri

    […] Nedir bu namespace diyerek Google’nin başına geçmiş, araştırmalar yapmış ve tam olarak kafanıza oturmadan çalışmaları sonlandırmış olabilirsiniz. Biraz gerçekçi senaryolar üzerinden giderek sonuca ulaşmaya ç… Devamı için : PHP Namespace […]

Bir Cevap Yazın