2008-10-07 58 views
2

我正在處理一些'helper'類,這些類有情感地擁有一堆靜態函數,它們允許控制器和動作訪問大量的共享功能。最佳實踐:在哪裏放置所需的文件

問題是,這些文件已被用作模塊/應用程序所需的任何功能的傾銷地點,因此它們的大小超過3k行,並且在頂部他們獲得了大約50個require_once聲明!

顯然,如果應用程序中的某個視圖不想使用這些助手提供的一小部分功能,它將繼承所有需要的文件,最終導致應用程序膨脹。

如果我要根據需要包含這些文件,那麼當我需要使用大量的文件時,我最終可能會調用所需的文件,這些文件有自己的開銷(與頻率複合)可從這些幫助程序文件獲得的功能。

所以基本上我的問題是平衡點在哪裏,有沒有一種可以應用的最佳實踐?

感謝,

Flunga

回答

9

看一看的autoloading feature。這會將所有包含的內容減少到只有需要的時候。

+0

非常感謝。這正是我需要的,並且由於幫助器源於PHP4實現,所以這是我一直堅持的東西,但現在不是。 :)再次感謝 – flungabunga 2008-10-07 12:41:56

1

當構建這樣的依賴關係以保持「非循環」時,最好的辦法就是保持「非循環」。您可以讓更高級別的功能「需要」它需要運行的低級功能,但是要設計它,以便事物不會互相指向。

這樣,通過分解成足夠小單位,你將能夠確保當你並不需要所有的模塊,只有依賴關係的最小數量被拉動。

我當然不知道任何理由來「要求」你不打算在頁面中使用的代碼。

+0

謝謝levik。這個應用程序非常龐大,我覺得分離和重建會更麻煩,上面的自動加載建議是我將要採用的,但是我會標記您的響應,因爲這是我一直試圖提供的好建議實踐。謝謝。 – flungabunga 2008-10-07 12:45:19