2009-05-01 68 views
2

你是什麼(特別是PHP)人們想到一個類名的命名約定,其中類名反映了與項目目錄相關的文件路徑?例如:什麼是文件路徑類名稱約定?

# /project/Session/Abstract.php 
# /project/Session/Database.php 

class Session_Database extends Session_Abstract ... 

我相信你明白了。我也相信一些專業人士是顯而易見的..但是你認爲 - 爲了獲得很好的目錄結構以便導航,延長班級名稱是否值得?這也允許在PHP中使用一行__autoload($ class)定義:str_replace('_','/',$ class);

我想有人會認爲這樣的約定是愚蠢的。我個人喜歡它,但是我沒有看到它被其他人使用,我不確定它在實踐中是否能夠很好地工作。

其中一個缺點可能是在刪除包含/要求調用時,所有類都依賴於(粘在一起)自動加載函數,有些人可能會爭辯說,它不符合他們對鬆散耦合的理解。

已知可我至今對這種方法唯一的參考是http://softwareengineering.vazexqi.com/files/pattern.html

那麼,你對這個評論?

+0

我在這裏問了一個類似的問題:http://stackoverflow.com/questions/791899/efficient-php-auto-loading-and-naming-strategies,所以我期待着看到你的一些答案,他們應該很好地補充。 – zombat 2009-05-01 21:54:46

回答

5

然後你一直沒有看。 PEAR使用這種方法。那麼Zend Framework。這是PHP世界中相當成熟的標準。我不知道我什麼時候第一次遇到它,但我已經親自使用過它並且喜歡它好幾年了,既是我自己的框架的一部分,也是ZF等公共可用框架的一部分。

+0

事實上,我一直沒有看 - 我傾向於避免PEAR,最近我沒有打擾Zend框架。 儘管如此,我還沒有遇到其他開發人員在我周圍的使用它的問題,並且問題在困擾着我。謝謝你指出我明顯的。 – Petrunov 2009-05-01 22:13:12

1

我不喜歡這件事的唯一真實情況是,當我需要移動代碼時,我最終重新處理了大量名稱。然而,埃米爾已經指出,這是非常相似的課程,但我想添加。

1

我也使用該慣例。

它不僅幫助有一個漂亮的文件結構,它也有助於命名空間問題。該命名約定有助於爲類加上前綴以避免重複的類名稱。

當PHP 5.3發佈並最終有名稱空間時,我仍然會使用這個約定。我唯一不同的做法是縮短我的類名稱,將我的前綴轉換爲適當的名稱空間,然後在自動加載器中進行調整。