【问题标题】:Maintaining variants of an application维护应用程序的变体
【发布时间】:2010-11-11 22:30:46
【问题描述】:

我们的产品正在为每个客户稍微定制。 确切的定制是不可预测的——我们假设代码中的任何一点都可能需要更改。 但是,我们希望保留一个代码库,因为 90% 以上的代码都是相同的,因此我们不必将每个更新或新功能分别合并到每个客户端。

如何做到这一点?

该项目是用 PHP 和 Yii 框架编写的。

基本上,我们想要这样的东西: 每个客户都会有一个包含代码“镜像”的文件夹。该“镜像”将仅包括为客户定制的那些类。然后,在运行时,客户身份将是已知的,并且每次提及类名称都将解析为该类的通用版本 - 如果此客户端不存在客户端特定版本,或者该类的客户端自定义版本 - 如果这样的版本确实存在。

我会感谢 cmets 关于一般设计问题。
上述解决方案的任何 cmets。
还有其他方法可以实现我想要实现的目标吗?
也许是一些代码生成工具,用于从当前主代码生成客户端特定版本?

还有实施问题。这在 PHP 和 Yii 中如何实现?

我想首先使用 PHPs __autoload。但是,无论如何它只会选择该类的一个版本。这是一个问题,因为我们每次都需要选择客户端特定版本,除了一个:在定义类的客户端特定版本时,我们将扩展该类的通用版本。所以类版本不能在加载时解析,两者都需要加载,除了一个之外,每次都会使用客户端特定的。

谢谢

【问题讨论】:

    标签: php oop versioning


    【解决方案1】:

    想想svncvsgit,所有这些版本控制系统都可以帮助您将代码分支、主干、标记到每个客户项目

    【讨论】:

    • @gidireich - 你的意思是没有 100% 回答你的问题吗?
    猜你喜欢
    • 1970-01-01
    • 2011-10-31
    • 2011-02-20
    • 1970-01-01
    • 2013-11-28
    • 2011-01-28
    • 2013-09-28
    • 2017-03-01
    • 1970-01-01
    相关资源
    最近更新 更多