2015-08-31 22 views
0

我想弄清楚爲什麼會在類名中將下劃線轉換爲PSR-0中的目錄分隔符?我確信有一個原因,但我想不出爲什麼。爲什麼下劃線轉換爲PSR-0中的目錄分隔符?

如果我有一個類命名的命名空間中的\namespace\subnamespace 那不是再轉換爲\namespace\subnamespace\my\class\name時,我想的是\namespace\subnamespace\my_class_namemy_class_name? 我明白,如果我的班級系統是圍繞這個建立起來的,但是如果我想要目錄分隔符,我只會使用反斜槓而不是下劃線。

+0

一般來說,你不應該在類名中使用下劃線。駱駝案件是首選。 –

+0

我個人不這樣做,但我使用的是PSR-0兼容的自動加載器,但必須使用一組我未創建的類(其中包含類名稱中的下劃線)。特別是https://github.com/Setasign/FPDI。我知道他們有一個composer.json文件可以解決我的問題,但我的系統不運行作曲家(這是另一個問題本身,但這是另一天)。這是除了點之外。我真的只是問爲什麼這樣的東西會被包含在PSR-0中? –

+0

請注意,PSR-4自動加載不會將下劃線轉換爲目錄分隔符。 – Benjamin

回答

3

因爲歷史。在PHP獲得命名空間支持之前,通常使用下劃線分隔的位來表示某種窮人的命名空間。在創建PSR-0的時候還有足夠的時間來做出實際的決定。

+0

對我來說足夠好。我想我唯一的選擇是使用作曲家,將硬編碼邏輯添加到我的自動加載器,或嘗試修改類以消除下劃線。我不知道最後一條在技術上是否合法,所以我可能不會採取這種路線。 –

相關問題