2011-09-23 65 views
2

我正在努力测试依赖于某些框架文件存在的php开发代码的最佳方法。我认为git有三种可能的情况:用git和php开发(网络开发)

  • 创建活动生产目录的副本并将此“dev”目录克隆到本地工作站。下一步将是编辑本地工作站上的代码并提交/推送每个更改。您可以通过生产服务器上的'dev'url来检查您的工作。如果一切正常,您可以将更改推送到“实时”目录。在编辑/修复代码时(语法错误或其他明显的错误),这种方法可能会导致很多提交,并且会增加额外的步骤(提交/推送)来查看结果。

  • 创建一个镜像生产服务器的'dev'服务器。该服务器将包含所有框架文件,您可以直接编辑“实时”目录的副本,并立即看到您的更改。如果您愿意,可以将远程“dev”目录安装到本地工作站。这需要一个额外的服务器,需要维护,你需要这些资源来设置它。

  • 创建一个本地“开发”工作站环境,并在'live'或'dev'服务器上复制存储库。通过这种方式,您可以测试本地计算机上的所有代码,并仅推出已经过测试和批准的提交。与方法1相比,这减少了提交次数。要在本地重新创建“开发”环境,您可能必须将大量框架/依赖文件安装到本地工作站,即使这样,当代码移植到实际的活动服务器时,它也可能不是100%可靠的。

基本上我想找到最好的方法“写 - 测试 - 修改 - 测试 - 修改 - 测试 - 提交” 周期,如果你是依赖于框架文件(无论框架而定)。你会创建一个'dev'服务器吗?还是你会在本地工作站上重新创建确切的生产环境?理想情况下,只有在完成一些初始测试(明显的语法错误等)后才会提交代码。具有本地git repo的'dev'服务器将要求您承诺每一个小改动以测试您的工作,这可能是单调乏味的。...

我希望我已经说清楚了。我正在寻找整合git和'write-test-commit'循环的最佳方式。通常情况下,你会在本地机器上测试,但通过Web开发,你可能需要一个webserver +框架来测试你的代码。直接在'live'服务器上编辑是我想要避免的。

感谢您的输入!

回答

4

确实有很多方法可以做到这一点,但这里是我最近工作的2美分。因为如果你有不止一个开发者,每个开发者可能会尝试用冲突的代码更新开发者服务器,或者如果他们在类似的领域工作,覆盖一些开发者你的测试代码,因为你们都可能在同一个分支上工作,但是既修改了代码,也没有推送更改。

也就是说,您可能需要一个与您的实时服务器非常相似的开发服务器,以便在您和其他一些开发人员进行了一些更改后,可以在开发者服务器上测试它们,然后更新活服务器。

在我的环境中,我在Linux上开发并使Apache/PHP运行与实时服务器相同的版本和配置。这样,我克隆了我的git repo,设置了我的环境,以便我的文档根目录是我的git repo的“公共”目录(例如htdocs)。在这种情况下,我们有一个通常共享的开发MySQL服务器,而不是在本地机器上,但是你可以做任何最简单的事情。我们的系统依赖于来自现场的不断更新的数据,所以这就是共享数据库的原因,我们有一个系统会自动将大量必要的“测试”数据添加到数据库。

这样,我可以从git中提取最新的代码,完成所有我想要的工作,工作中断修复,工作工作等等,当我完成我的任务时,我可以推回更改为其他开发者提供git。

当您准备发布时,您可以在开发服务器上进行所有测试和测试,验证是否有好处,然后推送到现场。

在我的情况下,更新“活”服务器,一个人负责,我使用rsync同步我的本地工作目录到活服务器。因此,当我确定我们已经准备好部署时,我从git中取出最新的代码,然后运行脚本,将我的git目录rsyncs到服务器。

我会避免你的方法1 & 2,并采用类似3的东西。这可能是你做的最简单的事情,也是最容易管理的。根据你的团队的情况,你可以创建一个开发虚拟机,这个虚拟机是用你所有使用的所有依赖关系,正确的软件和开发工具预先构建的,或者让开发者自行设置。

到目前为止,这个方法对我和我的团队中的其他人都非常有效。

4

打电话给我,但每个开发人员都应该有一个本地开发AMP堆栈,可以开发它们。如果您不知道如何设置生产服务器的精确镜像,请先解决该问题。

一旦你在那里,让每个开发人员设置一个干净的操作系统安装的虚拟机,配置web/php/db服务器和库/ framewroks来匹配生产环境应该是微不足道的,检查你的项目,并开始工作。

开发人员在他们自己的本地回购协议中违反个人分支,在本地测试后,通过推送或拉取请求或其他方式发送代码。

有关如何将更改合并到主控的确切规则取决于您的团队的偏好。但开发人员应该几乎总是有一个完整的本地开发环境。如果看起来很难建立起来,那是一个很大的问题。弄清楚如何使它变得简单并记录下来。

+0

+1虚拟机是让本地环境尽可能接近生产的好方法。 Oracle VirtualBox是一个很好的免费选项。它总是比WAMP,XAMP,easyPHP等工具好得多 – codercake