Php 将代码分发到多个位置

Php 将代码分发到多个位置,php,batch-file,web-applications,windows-server-2008,Php,Batch File,Web Applications,Windows Server 2008,一些理论性的问题可能会带来一些更实际的问题。我目前在codeigniter框架内使用PHP开发了一个web应用程序 该应用程序现在由5个独立的客户使用,每个客户都有自己的特定修改,这些修改扩展了我创建的基本/核心代码。现在,每当我对开发版本进行任何更新时,我都必须费力地将每个单独的文件/目录手动复制给每个客户 我想了解一下如何最好地自动化这个过程。该场景是应用程序在windows服务器上运行,PHP5.4连接到mysql数据库。所有域/应用程序(包括开发版本)都位于同一服务器上,并使用相同的IP

一些理论性的问题可能会带来一些更实际的问题。我目前在codeigniter框架内使用PHP开发了一个web应用程序

该应用程序现在由5个独立的客户使用,每个客户都有自己的特定修改,这些修改扩展了我创建的基本/核心代码。现在,每当我对开发版本进行任何更新时,我都必须费力地将每个单独的文件/目录手动复制给每个客户

我想了解一下如何最好地自动化这个过程。该场景是应用程序在windows服务器上运行,PHP5.4连接到mysql数据库。所有域/应用程序(包括开发版本)都位于同一服务器上,并使用相同的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之类的实用程序。它允许您在同一台机器上或在不同机器之间单向/双向同步文件夹。它应该很容易处理你的任务。您可以将其设置为按计划执行,也可以手动告诉它您需要同步。

在中,我不知道使用
扩展base/core是什么意思,但如果扩展名位于单独的文件中,您可以通过php include目录共享核心文件。那么你只有一个产品版本。嗨,我很感谢你的评论,很抱歉我不够清楚。在不深入讨论这个问题及其背后的原因的情况下,我实际上是在寻找最好的方法,以尽可能自动化的方式在Windows服务器上将文件从一个位置复制到另一个位置。你们两个都提出了有效的观点,但如果不深入研究,他们在这种情况下是不起作用的。好的同步看起来很完美。省得我编写不必要的代码。谢谢你的帮助!!!