如何在两个域上管理相同的代码?

时间:2012-05-21 13:37:16

标签: php html apache svn gettext

我有一个多语言项目,

该项目与HE / EN语言完全兼容。

在一个案例中,它将作为一个大型以色列项目的子文件夹上传,

在另一个中,它将被用作英文自己的.com域名的完整网站。

我目前有以色列项目的SVN设置,

我还没有为.com创建SVN,这是正确的方法,为此保留2个depo?然后我必须确保在israeli项目上编写的代码总是手动复制到.com文件夹,

这可以更有效地管理吗?

1 个答案:

答案 0 :(得分:3)

是的,这绝对可以更有效地管理。这里的陈述是主要问题:

  

然后我必须确保在israeli项目上编写的代码总是手动复制到.com文件夹。

这个过程不仅效率低下,而且容易出错。它完全没有规模。基本上,您将开发/测试/部署/等加倍。努力。如果您需要部署该应用程序的另一个实例,那么您的工作量将增加三倍。等等。

您要做的是隔离应用程序实例之间不同的组件。它只是语言内容吗?它是整个用户界面吗?如果它是整个用户界面,那么您希望该UI尽可能轻薄。 (好吧,无论如何,你想要那个。)然后,你必须加倍才能完成UI工作。其余的逻辑(业务逻辑,数据访问,服务等)可以在应用程序的所有实例中保持不变。

如果它只是文本内容,那么也许您可以重新考虑要从数据库中提取的文本。每个标签,每篇文章,每个菜单项等。虽然我没有具体的建议,但CMS系统可以很好地完成这项工作。但总的想法是让UI成为一个空包装器,由特定于该应用程序实例的数据填充。然后每个实例将控制其语言" (一般来说)只需管理这些数据。

您绝对不需要多个代码存储库。毕竟,如果你有两个代码库,哪一个是正确的?如果在一个存储库中进行了更改而在另一个存储库中进行了更改,那么哪个更改?你的代码应该有一个真实的来源。"多个真理来源意味着没有真相。