2011-04-22 78 views
5

我在工作中使用PHP 5.2.14,因此沒有名稱空間選項。 我可以用靜態函數替換名稱空間的類嗎?有關PHP中使用靜態函數和名稱空間的類的問題

例如,我們有很多「方便」的功能,它們混雜在一起,雜亂無章。 我很想看到他們遵循某種組織邏輯。所以我的解決方案是... 我想創建一個名爲「StringTools」或「DateTools」的類,每次我們需要使用這些函數時,我只需調用SomethingTools :: funciton_name(...) 。這將是一個簡單的類,它充滿了靜態函數,並帶有一個空的構造函數,純粹是爲了命名空間和組織。

這將很容易管理和非常有組織,因爲相關的功能將被組織到它自己的文件甚至文件夾中,類調用將通過自動加載來處理,所以我們甚至不需要包括任何東西。

這是一個可接受的方法來解決這個問題嗎?或者是否有更好的方式來處理5.3之前的PHP組織函數,這樣程序員在命名它們時就不會互相推??沒有組織的東西真的讓我感到困惑,我實際上期待着我將花費整理這些東西的額外工作時間。

+2

這是可以接受和廣泛使用的。 (而且一個適當的命名空間語法看起來總是如此。) – mario 2011-04-22 22:06:27

回答

3

這不僅僅是可以接受的,它可能是唯一的乾淨解決方案。一個對象的目標應該總是像函數一樣進行分組,所以只要你遵循這個方法,將這些函數分組到類中是合理的(IMO)。你想要注意的是你實際上像函數一樣分組,而不僅僅是把一些函數引入到一個類中。這會讓問題變得更糟,因爲在編寫新代碼時,如果發現方法,開發人員會感到困惑。

+0

很酷,謝謝你的回答。是的,我會像功能一起組合,這是我做這件事的關鍵。現在我們擁有一個擁有近10,000行代碼的文件,這些代碼的歷史可追溯到90年代後期,其中一些甚至不再使用......新組織的靜態方法加上自動加載將會非常令人驚歎。 – jack97 2011-04-25 15:33:26

相關問題