gpt4 book ai didi

php - 控制多个版本的PHP项目

转载 作者:搜寻专家 更新时间:2023-10-31 21:38:34 24 4
gpt4 key购买 nike

我偶然发现了以下问题,但找不到合适的解决方案。我用 PHP 为各种客户制作网站。像所有客户一样,有些会发现需要修复的错误,有些会在几个月后请求更新实时站点,有些则两者都做。

在为客户处理更新时,我喜欢在发布之前先向客户预览。

我过去使用过几种不同的解决方案,但没有一种让我满意。到目前为止我做了什么:

  • 在索引中定义 VERSIONCURRENT_VERSION。访问者看到批准的版本。我向客户发送了一个特定链接,该链接设置了一个 $_SESSION 变量,让他们可以看到新版本。在代码中,我使用 if 和开关来根据 CURRENT_VERSION 显示新内容。这行得通,将所有代码保存在一个地方并且很容易修复错误,但代码中充满了愚蠢的 if(CURRENT_VERSION >= V2) 语句。我也不能在 CSS 文件中使用它。
  • 将所有文件放在“build1”文件夹中,当开始需要预览的大型更新时,我将所有文件复制到“build2”文件夹中。我为客户端上传“build2”文件夹并用密码保护它。这工作得很好,但是,如果我在处理 build2 时必须修复 build1 的错误,我必须确保将修复从 build1 复制到 build2。
  • 使用开发服务器(一些客户可以提供)这是迄今为止最好的,因为开发服务器与实际站点是分开的。它的工作原理与第二种解决方案非常相似,我必须在第二种解决方案中复制项目,但我觉得它更干净。

不过,我正在寻找一种更好的方法来管理我的代码,可能会使用 Git/SVN,但如果它们可以帮助我,我对这些东西的了解还不够。

最佳答案

如今,一个相当典型的范例是开发/暂存/生产。对于这种方法,您也不需要完整的开发服务器,VirtualHosts/nginx 等价物就足够了。

我建议您需要做的第一件事就是将您的项目导入 Git,越快越好!

免责声明:这是我的工作流程,有很多类似的,但这一个是我的。

这是我当前工作流程的示例。

GitHub

我参与的每个项目都有一个单独的存储库

开发服务器

Git 存储库,复制我的 GitHub(我将很快解释)

/opt/git-bare

我所有项目的虚拟主机

/var/www/vhosts

本地机器

我根据需要克隆我的裸存储库,以便快速编辑和提交。我不担心 FTP 来回传输文件或在我的机器上本地安装任何东西。我发现这是处理项目的最佳方式。当我准备好在我的开发服务器上 check out 一些代码时,我只需将我的工作提交并推送到裸存储库,在那里我有一个post hook,然后告诉我的开发 VirtualHost 进行 self 更新。

这意味着在提交/推送我的工作的几秒钟内,我可以从我的本地机器上通过我的浏览器在我的开发服务器上看到它。

当我对在我的开发服务器上看到的内容感到满意时,我会将我的裸存储库推送到 GitHub。 Git 是一个很棒的工具,我所有的本地提交也可以在 GitHub 上的日志中找到。

暂存

这是我在 GitHub 上的 ma​​ster 分支的克隆,来自 GitHub。这就是我用来向客户展示并签署更改的内容。

生产

我的生产服务器是从 GitHub 克隆的一个标签。无论我在 master 分支中做什么,生产都不会受到影响,如果我的其中一台服务器出现任何问题,我可以轻松使用此标签进行重建。

如果您对此有任何疑问,请开火。

关于php - 控制多个版本的PHP项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13648412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com