php发展

首页 » 常识 » 问答 » 我所知道的大厂是如何用PHP的
TUhjnbcbe - 2021/3/3 19:15:00

PHP作为服务端开发的主要语言之一,使用广泛。很多网站或者APP的服务端都是用PHP写的,其中不乏有像百度、新浪之类的大厂。那么,大厂是怎么用PHP的呢?结合自己的工作经验和了解到的一些情况,简单说一说。

0.场景

如果你自认为自己是写PHP的,那么,请回顾一些自己都用PHP做过一些什么样的事情呢?相信绝大多数PHP工程师尤其是很多初学者,都会回答用来写网站或者服务端。甚至还会有人在基于PHP和前端代码混杂的方式写界面,这是常态。但是,作为一门语言,难道PHP只能写网站或者服务端接口吗?

其实,从我自己的工作经历来看,用PHP来做数据清洗、数据统计甚至流式计算的场景,也并不少。比如,刚开始实习和工作的时候,参与的几个项目里面,大量的用PHP+crontab定时任务来实现数据的ETL或者数据的定时统计功能。如果不知道什么叫crontab,大概你需要去翻翻Linux相关的书籍或者网站了。再比如,业界公开分享过的,链家用strom+PHP做流式计算,这样的例子在百度也存在很多。再比如用redis做消息队列,然后启动若干PHP常驻进程来消费队列里面的数据做类似实时计算之类的数据清洗;基于PHP实现一些简单的爬虫功能,并基于此来做网站或者接口的可用性监控;基于PHP构建自动化测试用例……等等。

1.框架

PHP语言框架众多,诸如ThinkPHP、Yii、Laveral、Symfony、CI、Yaf等等,很明显的一个问题是,PHP做网站开发的框架比Java做网站开发多很多。大概是PHP这门语言太容易造轮子了。各大厂选择PHP框架也是多种多样:比如,新浪,之前因为有鸟哥的存在,PHP部分主要用yaf;比如途牛,PHP层面主要用Yii,比如百度,也是因为很久之前有鸟哥的存在,使用一个与yaf基本没太多差别的框架,只是在内部不叫yaf罢了,可以认为yaf是百度内容框架在开源界的产品。当然,还有很多公司选择自己早轮子,基于Cmposer获取很多基础库然后拼一拼就组成了一个框架,比如,孙红雷代言的某二手车电商。

2.语言及周边

看到语言部分,可能很多人会说,不就是PHP嘛,为什么还要说语言。其实,大厂除了PHP之外,还有很多其他的选择。比如,以百度为例,因为之前PHP版本性能问题的原因,一直在寻找能够既能利用PHP开发效率高的优势,又能提高PHP执行性能的方案。所以,在很多人很多年的努力之后,百度终于将高大上的HHVM,搬到百度很多业务的运行环境上面。当然,那个时候,很多公司因为基础技术研发投入的原因,基本还停留在PHP5.*的版本上,直到这两年PHP7正式发布,很多公司,比如新浪微博,才逐渐找到了可以与HHVM性能持平的语言性能解决方案。关于HHVM是啥,基本就是脸书大神赵海平先生以前鼓捣的那套hiphop的东西,后来逐渐演变成了hhvm。多说一句,赵海平先生以前就读于清华,好像是学生物的,后来在脸书工作期间因为搞出了hiphop而名声大噪,后来被挖到阿里做研究员去了,据说还是专注于研究性能方面的东西,此大神实在是我等非科班出身的程序员的学习榜样。

除了语言之外,说一下语言周边。比如,很久之前,百度为了提升在线业务的运行性能,调研了很久之后,最后采用把原来一种旧的服务器换成Nginx的方式,来提升系统性能。再比如,yaf,在一定层面上,也是框架性能方向的一种产物。后来,出于语言性能层面,将hhvm搞到线上业务运行环境,则属于语言性能方向的成功探索和实践。再比如,近期比较火的PHP扩展swoole,也是一种新的语言周边的技术基础设施,这东西的出现给PHP的未来发展增加了很多的可能。比如,基于扩展支持协程、更强的网络通信、自带

1
查看完整版本: 我所知道的大厂是如何用PHP的