在我最近访问的 PHP 开发环境中,首席开发人员坚持在他们的机器上使用 Linux 进行 Zend 开发。
我个人使用 Windows,在开发过程中也得到了同样的结果。我也设计了很多图形,使用 Windows 最舒服。
在开发环境中使用 Linux 比使用 Windows 有哪些优势?如果有,优势是什么?
答案1
我一直在使用 Windows、Mac 和 Ubuntu 进行 PHP 开发,如果您的环境设置正确,那么在我看来绝对没有区别。
某些工具(例如 Git)在 Windows 上可用程度较低,因此您可能需要寻找特殊的可部署文件或使用 cygwin,但一般来说,没有区别。
答案2
一个显著的区别是文件系统区分大小写。例如,如果您有一个名为“Bootstrap.php”(大写字母 B)的文件,并且您的代码包含行require_once('bootstrap.php');
(小写字母 b),则在 Windows 上可以运行,但在 Linux 上会失败。
有时还会出现仅限 Windows、仅限 Linux 甚至特定版本的问题,这些问题与 PHP 使用的不同库有关。
简而言之,在尽可能接近生产系统的环境中进行开发通常是最好的。
如果需要,一种可能的设置是为您最终编程的每个环境使用一组虚拟机。
答案3
一些命令行 php 脚本在我的 Windows 机器上遇到各种问题。
例如,我曾经使用过 Symfony CLI,它在 Windows 中会抛出 cache:clear 错误,但在我的 Linux 环境中却能完美运行。
我也曾经因为在表名中使用驼峰式命名法并在查询中引用它们而体验到运行大约 60 个查询的乐趣(这在 Windows 下是可行的,因为它会忽略大小写)。当我将项目放在我们的 LAMP 堆栈上时,查询失败了,因为 Linux 上的 MySql 将表名全部存储为小写,而它们是区分大小写的。
此外,由于我的 Windows 机器是我的本地测试服务器,我曾经遇到过我需要的 PHP 库在 Windows 上不可用的情况。
过去,像这样的小细节曾让我效率低下。不过,几乎每次 Ubuntu 更新都是如此,所以这是一种互利互惠 ;)
答案4
我能想到的最简单的方法是,如果您的开发环境和部署环境相似,那么您可以更轻松地引入依赖项。如果它是一个自包含的项目,那就没问题,但在许多基于 Web 的应用程序中,有必要引入外部依赖项 - 询问您的首席开发人员他们使用哪些外部库,以及它们如何更新。
许多开发人员还偏爱某个操作系统中的工具 - 例如,可能您的其他开发人员是 Vim 或 Emacs 的粉丝,或者偏爱使用 cli 源代码控制系统客户端。
当然,您可以使用 VM(或单独的 Linux 服务器)和/或使用 putty 和 smb 进行文件共享,从而获得两全其美的效果。
不过,归根结底,您需要熟悉基本设置。开始在 Windows 中工作 - 找到您在环境中面临的实际问题,并找出如何解决这些问题。