PHP生态发展十几年了,目前依旧在业务开发语言中占一席之地。大部分公司业务开发都会要求统一开发风格,以便业务更好的迭代重构。PHP由于是解释性语言,前期开发环境配置简单;依赖的扩展及三方服务并不复杂,但随着业务的发展,引入的三方服务不断迭代更新就会造成开发人员的环境不统一,容易出现本地环境测试没有问题,一上线就出现各种奇怪的问题。

笔者总结下目前PHP本地开放环境趋势,大致有三类

#集成环境

开发使用诸如phpstudy、xampp、mamp等集成环境,这些集成环境基本上满足PHP开发日常。这类集成环境在统一配置PHP扩展比较麻烦,尤其涉及windows环境扩展更加繁琐。

#phpbrew自由式

phpbrew是一个PHP多版本包管理软件,支持多版本,自由配置扩展等便捷操作。笔者比较推荐使用这种方式开发PHP项目,phpbrew在mac/linux环境使用基本满足需求,windows开发环境配置phpbrew比较麻烦一些。微软这几年推进windows shell环境的使用,相信过几年三端开发环境差异性会逐渐缩小。

示例:

1
2
3
4
5
6
7
8
9
10
11
#安装特定版本
phpbrew install 7.3.0

#设置PHP版本
phpbrew use 7.3.0

#扩展安装
phpbrew ext install ldap

#关闭phpbrew
phpbrew off

#Laravel homestead

laravel homestead是laravel官方出品的开发环境方案,通过vagrant加载配置文件初始化PHP项目所需要的环境。vagrant使用virtualbox等虚拟机方式加载laravel/homestead box镜像的方式统一项目中研发人员的开发环境,该方案属于笨重的方式。box镜像文件比较大、需要配置homestead.yaml和需要安装virtualbox没有那么灵活。企业级开发可以使用该方案,不过homestead支持其他框架么,如Yii2/Symfony/CI?

#Docker化

一切服务皆可docker?随着微服务化、k8s和云上服务等技术兴起,docker这个容器也随之成了研发人员常常讨论的话题。docker优点主要在于容器化、隔离型、易于管理和轻便性为主。PHP在docker的生态环静发展也不错,主流镜像基本都有。
PHP这里采用docker主要存在两个方面:一是docker构建业务代码;二是docker构建本地开发的环境。前者通过gitlab中的ci脚本统一构建代码运行环境,便于运维管理发布回滚等操作。后者主要是便于开发人员本地搭建环境节省大量时间。很多时候只是验证某些服务的场景,手动搭建环境会遇到很多问题;手动搭建唯一好处就是可以非常了解系统的运行及系统的官方手册 :)

laradock是PHP集成环境docker化一个方案,通过内置开发环境所需的dockerfile文件进行自动构建;该项目目前github拥有星星7k+的状态,仓库内置许多服务的dockerfile可以用来学习某些服务dockerfile写法,推荐学习下

#结论?

由于每个人的喜好不同,开发习惯也不同。如果想自由些,推荐phpbrew+docker开发PHP项目;企业级想强制规范开发环境可以使用homestead方案。
对于windows环境下的开发者,笔者建议下载virtualbox安装debian环境进行日常开发,毕竟windows下开发会存在很多诡异问题。

或许几年后又流行XX方案呢?一切都只是趋势下的产物

#参考

vagrantup文档
Homestead文档
phpbrew仓库
laradock文档

评论