在团队中组织PHP开发(环境,配置等)

时间:2011-03-09 18:58:59

标签: php development-environment zend-studio

我们一直在与这个问题作斗争一段时间,而且似乎找不到能够满足开发人员生活更轻松的所有要求的完美解决方案。

现在我们有以下设置:

  • Linux开发服务器(因为我们生产的所有东西都在linux上运行,它使用一些linux-specifix库)
  • Windows桌面(办公室网络在Windows上)
  • 每个开发人员在开发服务器上都有一个主文件夹,其中设置了一个虚拟主机来运行他们的代码。使用Samba共享此文件夹。
  • 设置为使用该位置(作为网络驱动器)来处理项目的Zend Studio IDE
  • 远程调试,以便能够在开发服务器上运行应用程序并能够单步执行代码

所以我们遇到的主要问题是一切都很慢......

  • Zend对项目编制索引很慢,因为它需要通过SMB传输相当多的文件(包括完整框架等外部文件)。
  • 远程调试很慢,因为Zend studio需要获取文件,然后将其发送回服务器以运行它(运行“Local if available,else server”;否则断点不起作用)
  • Tortoise SVN获取提交的文件状态很慢(命令行可以解决问题,但是用户友好性较差,特别是在合并时解决冲突等更复杂的事情)

扩展到任何可能具有多个服务器配置的解决方案都会带来一个问题,即在任何地方都可能有不同的配置,这会在生产中引入额外的不确定性和可能的​​错误。

由于代码中的linux依赖性(如POSIX函数),因此无法在Windows下进行开发和调试。

那么组织如何解决这些问题呢?你使用什么样的设置?您面临哪些问题,以及如何解决这些问题?

1 个答案:

答案 0 :(得分:3)

在某些情况下有效的解决方案是:

  • 在运行Windows的物理计算机上的本地磁盘上安装代码
    • 此代码是您使用IDE修改的代码
    • 因此,IDE正在尽可能快地工作:每个文件都没有SMB访问权限。
  • 还有Linux服务器上的代码
    • 因此Apache运行速度很快:代码存在于服务器上
  • 使用某种同步机制,通过SMB共享将对Windows机器上的文件所做的每个修改推送到Linux服务器。
    • 使用Eclipse,FileSync plugin在SMB共享方面做得很好。
    • 还可以使用WinSCP通过SSH连接保持远程和本地文件夹同步


优点:

  • 所有本地操作都很快
  • 所有服务器操作都很快

缺点:

  • 您必须始终使用确保同步的工具(例如,使用FileSync,一切都必须在Eclipse中完成 - 而在任何其他软件中都没有)
    • 注意:对于SVN,不需要使用Tortoise:有插件集成到Eclipse (例如Subversive)
  • 不确定调试
  • 直接在Linux机器上完成的修改可能不会(取决于解决方案)同步到Windows桌面。


仍然,最好的(最快和最强大)解决方案通常只使用一台计算机 - 在您的情况下运行Linux,而不是Windows。

  • 您的工具很可能在Linux下工作
  • 如果需要,您可以在虚拟机中安装Windows,对于某些不在Linux上运行的软件
  • 它会鼓励团队中的每个人更好地了解Linux;当您的生产环境不是Windows时,这总是有用的; - )