最近一直在利用业余时间开发ExpressPHP的第二个版本MixPHP。想起今天下班前面试官的一个问题:为什么要造另一个轮子?仔细想想,第一个版本,现在想想,确实比较“炫耀”。现在推翻了第一个版本,重构了一个所谓的“高性能PHP框架”。这东西不赚钱。我在为它做什么?其实写程序和写诗有很多相似之处。他们还需要优雅的语法。好的作品也想被更多人欣赏。感性完了,还是理性分析一下吧。国内常用的框架是国内比较流行的PHP框架。参考拉勾等招聘网站的招聘信息,口耳相传给很多同事。框架特点人气比较适合ThinkPHP易用、文档友好、过度封装、网页高Yii安全性高、规范、性能差网页高Codeigniter简单、高效、文档友好网页高&APIYaf/PhalconC扩展、高性能通用API后端业务场景开发通常后端开发有以下几种场景:网页/后台管理开发API开发TCP服务器开发UDP服务器开发异步队列消费者开发定时任务开发使用了多种技术,复杂度和成本是肯定会更高因为不同的场景需求不同,所以很多公司使用各种各样的框架来开发,APPAPI使用Yaf/Phalcon,后台管理使用Yii,ThinkPHP,Codeigniter,TCP/UDPserver是自己写的在Java/C++中。一个后端开发需要招聘擅长不同Framework的,由不同语言的程序员开发。现有MVC框架的弱点在于网页/后台管理/API的开发。流行的PHP框架向来擅长,但是在控制台程序开发方面:HTTP/TCP/UDP服务器端开发:目前还没有流行的PHP框架封装。异步队列消费者开发:只提供CLI方式运行controller的方法,不提供主进程带多个子进程的进程模型,不提供多线程处理。定时任务开发:还需要依赖crontab等第三方工具,PHP框架本身无法实现。像Yaf/Phalcon这样的C扩展框架不可能兼具PHP框架的开发效率和性能。如果开发业务非常复杂的后台和网页,开发效率不会很高。Codeigniter的开发API的性能稍差一些。当然性能可以从架构入手,但如果能同时实??现高性能和开发效率就更好了。MixPHP力图兼顾高性能和开发效率:参考Yii、ThinkPHP、Codeigniter的特点提高开发效率,编写所有面向对象的MVC框架同时支持LNMP架构和Swoole应用服务器,开发时沿用LNMP传统效率是需要架构的,当需要高性能的API时,可以通过修改少量代码切换到Swoole应用服务器,将框架类库预加载到内存中,按照长期流程连接数据库,可以达到Yaf/Phalcon的性能。多线程异步队列服务:只需编写controller方法,然后在配置文件中配置路由命名空间、进程、线程数,即可在CLI方式下启动多进程多线程模型的异步队列handler。定时任务服务:只需编写controller方法,然后配置路由命名空间和定时周期条件,即可在CLI方式下启动动态多进程模型的定时任务handler。TCP/UDP服务:一步步来,后续版本考虑加入。Wishattheend:希望以后所有的后端开发,比如PHP,都可以用框架?PHP是最好的语言。GitHub支持的用户请加个Star,让更多人发现MixPHP。https://github.com/mixstart/mixphp
