PHP 5.3 ve NameSpace

merhaba arkadaşlar son stabil sürümü 5.3.1  kasım 2009′da yayınlanmıştı biliyoruz. 5.3 ile beraber  katılaşan şeyler olmaya başladı bu da dilin tutarlılığını arttırıyor bence.  stilinden vazgeçmeyip  yanlış kullanımlar yapan arkadaşlarımız artık kendilerini değiştirmeye mecbular.  bu düzenlemelerle beraber bir de NameSpace   olayı eklenmiş. C# ta da namespace diye geçer Javacılar Package diye  bilir vs.

0
namespace d3;

artık sınıflarımın sahbi bu (: tüm sınıflarımı d3 namespace altına yazmayı düşünüyorum. bu  aslında OOP nin temeli olan kalıtımdan %100 faydalanabilmemizi sağlayacak ve okunabilirliğini arttıracak. 

namespaceleri farklı olan aynı isimde birden fazla class olabilecek artık. bunu da şu şekilde ayırt ediyoruz

0
use d3;

bunun altına oluşturmaya çalışacağımız sınıflar için ilk once d3 namespace altına bakılacak.
bununla beraber  yeni global constantlar ve constant çağırma metorları da geldi  artık sınıf içerisinde ya da dosyamızda

0
__NAMESPACE__

ile sahip uzayın adını çağırabiliyoruz.

0
1
__NAMESPACE__\QR_INDEX;
d3\QR_INDEX;

bunlarla da namespace içindeki constantları çağırabiliyoruz.

peki niye boyle bişey yazma gereği duyulmuş ?. şoyle açıklamak istiyorum arkadaşlar    dosya diskimiz için düşünelim.

/home/tufan /d3linq.php   dosyası olabilir  değil mi ? /home/d3lly/d3linq.php  dosyası da olabilir  yani bunlar aynı isimde  ama birbirinden farklı 2 dosya.
işte namespace bize bu kolaylığı veriyor..     d3\linq  dediğimizde benim linqim  zend\linq dediğimiz de de zendin linqini create etmiş olacaz..

Sub Namespace

0
1
2
3
namespace d3\sql\mssql;
  class mssql{ public $type=mssql; }
namespace d3\sql\mysql;
  class mysql{public $type=mysql;}

bu da subnamespace tanımlama yönteemi.


bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark
tabs-top


1 Yorum »

  1. [...]                 Bu soruyu kendimize sormamız doğal. Hem bunların hepsini yapabildiğimizi söyledik hem de PHP nin 5.3 ten sonra Reflection olayına isim verdiğini söyledik. Bu işi kendi başımıza halledebiliyorsak neden bize reflection sınıfı yazıldı ? Bunun cevabını yine 5.3 ile beraber gelen özelliklerde aramalıydık ki bu analiz sonucunda çıkarabileceğimiz tek sonuç Namespaces [...]

    comment-bottom

Bu yazıya yapılan yorumlar için RSS beslemeleri. TrackBack URL

Yorum yapın