2010-01-22 29 views
0

對不起,令人困惑的標題....調整PHP網站的幾個副本:最大化代碼重用和最小化重複?

我們正在開發一個應用程序供多家公司使用。大多數情況下,應用程序是相同的,它是爲其設計的數據定製的標準排序數據庫操作頁面(搜索頁面,編輯頁面等)。

但是,每家公司都有一個稍微不同的流程,我們將直接與每家公司打交道,因此我們希望使用某種類型的系統,以便我們根據哪家公司正在查看該頁面來調整頁面。例如,一家公司可能需要在數據輸入頁面上添加一些額外的字段,或者另一家公司可能希望在搜索結果屏幕上查看不同的數據,等等。

我知道這都是假設,我希望我有一個具體的例子給你,但老實說,公司甚至沒有給我們很好的例子。我們只是想做好準備。

所以我的基本問題是,什麼是最靈活的方式允許這些調整和定製在每個公司的基礎上?顯然,最靈活但最少程序員友好的方法是爲每個公司製作完整的應用程序副本。這顯然不是一種選擇,因爲我們需要管理所有網站上的更新代碼,試圖讓它們全部運行和測試,並且由於定製代碼而產生問題。

Smarty有什麼看法?也許如果我們有一組主模板,但是每個公司都可以有任何替換模板文件的不同子文件夾......當然,我們仍然需要在更改其中一個模板文件時更新一堆不同的模板文件,但無論如何,它會更加局部化。

有沒有更好的方法?某種形式的差異化模板引擎也許可以,所以我們仍然可以編輯原始文件,並且這些更改將在原始文件之上進行調整(有點像補丁)?或者也許我們應該使用PHP5的面向對象特性,然後使用多態?你最好的建議是什麼,特別是如果你有這方面的經驗,有什麼選擇,你使用了什麼,爲什麼?

回答

1

我認爲template method pattern會幫助你很多。對於幾乎相同但在幾個地方不同的東西來說,這是一個非常好的模式。我實際上正在爲我自己的項目制定一個模板方法層次結構。

1

我建議您嘗試使用mvc framework或使用您自己的mvc實現創建應用程序。

通過這種方式,您可以創建可供其他公司重複使用(也可以是視圖)的模型。