Not : bu döküman güncelliğini şurada korumaya devam edecektir
http://www.tufyta.com/php-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.
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
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
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.