PHP ad olması harika. Ad ayırıcı olarak '\' olması biraz ... garip (ama bu serin ve seksi olduğunu düşünüyor birisi varsa, ben bu yazı için etiket "rant" ekleme. ;).
Yani, burada bir soru çıkıyor:
Eğer kod NAMESPACE_SEPARATOR sabiti kullanıyor musunuz? Aşağıda kodu gibi:
<?php
if (!\defined('NAMESPACE_SEPARATOR') {
\define('NAMESPACE_SEPARATOR', '\\');
} // if
Artıları:
- Kullandığınız all bize DIRECTORY_SEPARATOR (;) ile tutarlı
- ('\Foo\Bar' düşünüyorum ama '\\' . Foo' . '\\' . 'Bar') kaçan hiçbir karışıklık
- daha okunabilir (IMHO)
- etkisi iyi, ad-aware autoloaders yazma fırsatı bize veren
- korkutucu bir şey olursa başka bir değişiklik kurtulamazsın (ol'good gibi '::' PHP 6 alfa)
- Yabancılardan gelen programlama dili kara ad operatör olarak '\' arasında uniquess gizleyebilirsiniz ;)
Eksileri:
- "
DIRECTORY_SEPARATOR
nedeni değerinin-alanı ayırıcı değil, platform bağlı olmasıdır." (Belirtildiği gibi http://bugs.php.net/bug.php?id=43046) - 1 yerine 19 karakter (\) ya da 4 ('\\')
Bu kullanamazsınız yerler (varsayılan sınıf değişkenleri olarak tam nitelikli bir sınıf adları) yani vardır:
<?php class A { protected $sDefaultReporterClass = '\My\Namespace\DefaultReporter'; }
Peki, sen ne düşünüyorsun?