2010-11-11 50 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

相关问题