各位大侠主要是 PHP 码农,请问贵公司是如何搭建 PHP 开发环境的,谢谢给出建议(在线等)

2016-01-24 18:31:36 +08:00
 wsn2009
背景:开发人员的开发环境不统一加上沟通不畅经常测试有冲突,想给他们搞一个开发环境统一起来
疑问:但是 PHP 我一点都不懂,只是懂点 Java 知道 myeclipse 可以有有调试模式,不知道 PHP 代码需要调试吗?我是想着在内网搭建一个 lamp 环境,然后通过 samba 挂在刀每个开发的本地各自开发,但是这样的话会影响调试吗,虽然我都没见过他们调试,老大说为了以后着想,请各位有 PHP 经验的不吝赐教,在线等,我身边的同学都是 android 或者 Java 貌似没啥参考意义,谢谢啦
9814 次点击
所在节点    PHP
78 条回复
vinsony
2016-01-25 00:35:24 +08:00
eoo
2016-01-25 00:45:34 +08:00
ryancao
2016-01-25 01:05:18 +08:00
先回答题主的问题: PHP 代码需要调试吗?
答案是需要的,原生 PHP 代码单步调试一般用 xdebug 插件(个人认为用的多些)和 zend debuger 插件(Zend Studio 自带); PHP 扩展的话 GDB...
不过,目前为止见到 var_dump 的绝对占多数,从这方面也某种程度反应了国内团队的现状

不过,个人认为题主的问题其实跟语言关系不大。 :) 猜测题主想让现有团队更加规范,尝试简要回答下,

本地开发环境:因为 PHP 代码最终是需要在服务器上运行的,因此强烈建议在一开始就保持本地开发环境和最终服务器运行环境的统一(包括系统、数据库、 PHP 、部署方式等),这样可以避免很多环境不一致引起的问题。 关键词: Vagrant + Virtualbox + Ansible (没有历史负担也可以尝试 Docker),不推荐类 XAMPP 这样子的工具包

编辑器选择:其实这个是仁者见仁的问题,如果大家臭味相投的话统一最好,不过也没必要强制要求,只要大家最终编辑器 / IDE 输出的 PHP 代码遵循统一规范即可。关键词: PHP Document, PHP CodeSniffer ,代码必须遵循 PSR 标准是大势所趋, PHP Storm(好吧,想了下还是推荐下,自己折腾一段时间后现成的生产力工具还是更省心)

开发到部署流程:只要上面把好了关,这里遇到的问题会少很多,而且与其他语言差别并不大;关键词: 持续集成、持续交付, 本地编码(Vagrant/Docker) -> 版本管理(SVN/Git) -> 构建 (Jenkins/TravisCI/Phing) -> 测试 (PHP Unit) -> 部署 (Ansible/Puppet/Chef)

推荐阅读:
PHP The Right Way : http://www.phptherightway.com/
Modern PHP: http://shop.oreilly.com/product/0636920033868.do (中文版: http://book.douban.com/subject/26635862/)
PHP Best Practices : https://phpbestpractices.org/
longear
2016-01-25 04:11:45 +08:00
@wsn2009 你们公司的事故就是因为没有代码版本管理工具,出了问题不能回滚到之前正常的版本造成的, 开发环境都不是什么问题,你们公司只能选择上 Git ,先不用管其他的。
zonzin
2016-01-25 05:29:48 +08:00
这都不会还当网管,不知道是怎么进去的,还招人吗?。

你说的这个上面别人都讲了,但估计不好实现。

现实的方法是全在本地做,内网里架个 SVN 服务器,每个人的机器上装 phpstudy.
zonzin
2016-01-25 05:33:53 +08:00
估计是 SB 领导怕代码泄露了,遇到过这样疑神疑鬼只会吹 NB 的人
wsn2009
2016-01-25 06:21:54 +08:00
@ryancao 其实看过上面大家的回答我基本上整理出了一个思路,和您现在给我的建议差不多,谢谢,因为你的回答让我更加确定我的想法可行,那么接下来我就准备开干了
Admstor
2016-01-25 09:02:34 +08:00
作为运维并不推荐 phpstudy 这类集成环境
调试还是建议内网上一台完全和线上环境一样的服务器最好,即便版本一样,配置参数还是会千差万别
尤其是开发环境在安全参数上面和线上环境是有差异的

开发在赶工的时候你并不会知道他可能会使用什么暴力的实现,这里就需要稍微给点限制了
Moker
2016-01-25 09:09:04 +08:00
同楼上, win 下用集成环境 会有不少坑
Yuansir
2016-01-25 09:31:02 +08:00
vagrant
fising
2016-01-25 09:36:23 +08:00
@zhs227 调试也不受影响是啥意思?
cai314494687
2016-01-25 10:06:45 +08:00
*nix 系的推荐使用 Docker , Windows 还是老老实实用 vagrant 吧
tabris17
2016-01-25 10:19:03 +08:00
vagrant 比 docker 适用场景更广泛
Jefei
2016-01-25 10:20:13 +08:00
欢迎试用我的 docker 环境 https://github.com/JanfyLiu/
Jefei
2016-01-25 10:21:26 +08:00
hqs123
2016-01-25 10:25:58 +08:00
不错,我也来学习下
codingpp
2016-01-25 10:38:16 +08:00
哪里都 docker docker 的烦不烦,装 b 用吧,真用起来给自己找麻烦
codingpp
2016-01-25 10:39:09 +08:00
一个一键安装包 丢过去
pizida
2016-01-25 10:52:41 +08:00
@function007 用 nginx 每人绑定一个目录,配 host 是可以的,那请问每个人开发完后,如何推送到主线?主线也是个测试环境,运营和开发都会使用的。
moro
2016-01-25 11:01:54 +08:00
windows 本地环境 wamp 还可以,支持各种版本切换。
代码需要有版本管理工具(svn/git,看开发人员熟悉程度来选择)来维护,本地需要有测试环境,测试环境要和线上环境一致。
代码先本地环境通过,提交测试环境,测试通过,在提交到线上环境。
代码部署通过版本管理工具来进行,确保代码一致性,出现问题可以及时回滚。
调试可以在本地环境和测试环境进行。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/253045

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX