将代码分发到多个位置

Distributing code to multiple locations

一些理论问题可能会导致更实际一些。我目前有一个在 codeigniter 框架内使用 PHP 开发的 Web 应用程序。

该应用程序现在由 5 个不同的客户使用,每个客户都有自己的特定修改,扩展了我创建的 base/core 代码。现在,每当我对开发版本进行任何更新时,我都必须煞费苦心地将每个单独的 files/directories 复制给每个客户。

我想了解一下如何最好地自动化此过程。场景是应用程序 运行 在 windows 服务器上,php 5.4 连接到 mysql 数据库。所有 domains/applications 包括开发版本都在同一台服务器上并使用相同的 IP 地址。

我认为批处理文件是执行此操作的最佳方法是否正确,如果有人可以指出我创建批处理文件的正确方向。我的其他想法可能是每个站点上都有一个下载按钮,它会启动自身更新过程,但我还是不太确定如何去做。

非常感谢任何意见。

谢谢

这实际上取决于您对各个客户的修改范围。 90% 是共享代码吗? 50%?

如果90%的代码是普通代码: 我会将我的核心代码库放在一个文件夹中,然后只使用自定义文件进行修改。

在核心代码中,您需要一种方法来区分客户端。假设您有一个客户端独有的 'clientid'。

示例: 假设我们在核心代码中,将包含一个名为 user_admin.php 的文件,但是这个文件对于您的一些客户来说是不同的,但不是所有的

function custominclude($file,$clientid){
    $customfile='/custom/'.$clientid.'/'.$file;
    if(file_exists($customfile)){
        include ($customfile); 
    }
    else{
        include ($file); 
    }
}
custominclude('user_admin.php',$clientid);

根据您在下方的评论进行编辑。

同步 windows 服务器上的两个(或更多)文件夹。使用像 GoodSync http://www.goodsync.com/ 这样的实用程序。它允许您在同一台机器上或不同机器之间以一种 way/both 方式同步文件夹。它应该可以轻松处理您的任务。您可以将其设置为按计划执行,也可以手动告诉它您在需要时同步。