2010-11-11 83 views
0

我們有一個產品正在針對每個客戶進行少量定製。 確切的定製是不可預測的 - 我們假設代碼中的任何一點都可能變得需要更改。 但是,我們希望保留一個代碼庫,因爲90%以上的代碼都是相同的,所以我們不必將每個更新或新功能分別合併到每個客戶端。維護應用程序的變體

這怎麼辦?

該項目是用PHP編寫的Yii框架。

基本上,我們想要這樣的: 每個客戶端都會有一個帶有代碼「鏡像」的文件夾。這個「鏡像」將只包含那些爲客戶定製的類。在運行時,客戶端標識將是已知的,並且每個提到的類名將被解析爲該類的通用版本 - 如果該客戶端沒有客戶端特定版本或該客戶端定製版本 - 如果這樣的版本確實存在。

我會感謝關於一般設計問題的評論。
對上述解決方案的任何意見。
有沒有其他方法可以實現我想要實現的目標?
也許一些代碼生成工具用於從當前主代碼生成客戶端特定版本?

而且還有執行問題。這如何在PHP和Yii中實現?

我首先想到了使用PHP __autoload。但是,無論如何,它只會選擇一個版本的課程。這是一個問題,因爲我們需要每次都選擇客戶端特定版本,除了一個:在定義客戶端特定版本的類時,我們將擴展該類的通用版本。因此,在加載時無法解析類版本,都需要加載,並且除了一個之外,每次都會使用客戶端特定的版本。

謝謝

回答

1

認爲svncvsgit,所有這些版本控制系統的幫助u到樹枝,樹幹,標記爲您的代碼,以每個客戶的項目

+0

謝謝回答。你肯定錯過了點,但是 – shealtiel 2010-11-14 02:08:21

+0

@ gidireich - 你的意思是不回答你的問題100%? – ajreal 2010-11-14 02:10:20

相關問題