2009-11-30 152 views
27

到目前爲止,我已經看到了許多用於PHP命名空間的不同命名約定。有些人使用PascalCase\Just\Like\For\Classes,有些人使用underscored\lower_case\names,有些甚至使用Java約定包名:com\domain\project\packagePHP命名空間是否有完善的命名約定?

問題是非常簡單的 - 這些(或其他)公約中的任何一個都可以稱爲公認的?爲什麼?他們是否有像Zend這樣的權威人士或知名PHP框架的開發者推薦?

回答

25

一個PHP標準工作組做出貢獻的許多不同的PHP框架和項目達想出了以下建議進行適當的命名空間的使用:

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md

+10

這只是回答這個問題。我看到的唯一提到的大寫字母是「供應商名稱,名稱空間和類名中的字母字符可以是小寫和大寫的任意組合」 – mpen 2014-06-30 06:21:35

-1

就我個人而言,我喜歡編寫類名較高的camelcase,類屬性和方法降低camelcase和帶有下劃線前綴的類屬性。

其他本地變量我也寫下沒有下劃線前綴的camelcase。對象實例總是寫成uppper camelcase等等。我不認爲有一個最好的方法,你只需要符合你的編碼標準。這爲您提供了通過代碼更快地閱讀的優勢,它可以更快地瞭解哪些代碼行正在發生什麼。

+0

-1分享您的個人標準不回答貢獻這個特別的問題。你提到的所有內容都沒有提及任何支持你觀點的資料。簡而言之:請在發佈答案時重點關注問題。 – 2016-12-17 11:47:17

+0

雖然你是對的,但這個答案已經發布了7年以前。 – Ben 2017-01-26 14:40:59

+0

事實上,相當一段時間以前,我從不看那些日期。令人驚訝的是,如果你想一想:問題和答案仍然吸引訪客,並幫助人們學習。 SO就是這樣一個圖標。這也是我投票背後的推理:對特定問題增加價值的答案進行增票,對那些不支持的人進行倒票。這確保了SO的質量:只有作者可以刪除(某些例外),但社區決定。我覺得它非常優雅。讓我強調這不是個人問題:我看到你發佈了許多高質量的答案。我只是認爲這不是其中之一:-) – 2017-01-26 19:14:02

4

我不認爲你可以說有在這一點上完善的東西,但有一個RFC討論它PEAR2:http://wiki.php.net/pear/rfc/pear2_naming_standards

我的看法是,命名空間是變量的形式,因此應遵循與他們相同的慣例。我更喜歡lowercase_underscore免費變量(而不是對象成員),所以對我來說最自然的將是namespace\ClassName。這也符合其他語言中最流行的慣例。另一方面,可以爲5.3之前的僞命名空間提供相同的參數,但這裏的事實標準似乎是使用CamelCase。