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.
Bu yazıya yapılan yorumlar için RSS beslemeleri. TrackBack URL
[...] 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 [...]