【问题标题】:Distributing code to multiple locations将代码分发到多个位置
【发布时间】:2015-03-11 19:45:26
【问题描述】:

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

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

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

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

非常感谢任何输入。

谢谢

【问题讨论】:

  • 不知道您对extend the base/core 的确切含义,但是如果扩展名位于单独的文件中,则可以通过 php 包含目录共享核心文件。那么你只有一个生产版本。

标签: php batch-file web-applications windows-server-2008


【解决方案1】:

这实际上取决于您对单个客户的修改范围有多大。 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/ 这样的实用程序。它允许您在同一台机器上或不同机器之间以一种/两种方式同步文件夹。它应该可以轻松处理您的任务。您可以将其设置为按计划执行,也可以手动告诉它您何时需要同步。

【讨论】:

  • 您好,感谢 cmets,抱歉我不够清楚。在没有深入探讨问题及其背后的原因的情况下,我本质上是在寻找以尽可能自动化的方式将文件从 Windows 服务器上的一个位置复制到另一个位置的最佳方法。你们都提出了有效的观点,但如果没有深入探讨,它们在这种情况下是行不通的。
  • 良好同步看起来很完美。节省我编写不必要的代码。谢谢你的帮助!!!
猜你喜欢
  • 2017-07-24
  • 2021-08-06
  • 2013-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
  • 2012-11-02
  • 1970-01-01
相关资源
最近更新 更多