我为什么要开发一个 MixPHP 框架

2017-10-11 18:17:57 +08:00
 onanying

最近业余时间一直在开发 ExpressPHP 的第二个版本 MixPHP,今天下班想起之前一个面试官的问题:你为什么还要再造一个轮子呢?仔细回想,第一个版本,现在想来确实 “炫技” 的成份比较多,现在推翻第一版,又重构一个所谓的 “全功能 PHP 框架” ,这东西又不赚钱,我到底为了啥?其实,写程序和写诗有很多相似之处,同样需要优雅的语法,好作品也同样想要有更多的人欣赏,感性完了,接下来理性的分析一下。

国内常用的框架

国内较流行的 PHP 框架,参考 Lagou 等招聘网中的招聘信息与众多同事口口相传。

ThinkPHP: 易上手,文档友好、过度封装
Yii: 安全性高、规范、性能稍差
Codeigniter: 简单、高效、文档友好
Yaf/Phalcon: C 扩展,高性能

后端开发业务场景

通常后端开发有以下这些场景:

采用多种技术,复杂度、成本必然更高

因为不同场景的诉求不同,所以很多公司采用多种框架来开发,APP 的 API 采用 Yaf/Phalcon,后台管理采用 Yii、ThinkPHP、Codeigniter,TCP/UDP 服务器又采用 Java/C++来写,一个后端开发就需招聘擅长不同框架不同语言的程序员来开发。

现有 MVC 框架的弱项

在网页 /后台管理 /API 开发方面,流行的各种 PHP 框架一直都很擅长,可是在控制台程序开发方面:

PHP 框架开发效率与性能不可兼得

Yaf/Phalcon 这样 C 扩展框架,如果开发业务十分复杂的后台与网页,开发效率不高,中小企业开发效率才是生存王道,而开发效率高的 ThinkPHP、Yii、Codeigniter 开发 API 性能又差了点,当然性能可以从架构上着手,但是如果高性能与开发效率可以兼得,岂不更好。

MixPHP 试图解决这些

结尾

许愿:希望以后所有后端开发,如用 PHP,就用一个框架可好?

GitHub

支持的用户请加个 Star 吧,让更多人发现 MixPHP。 https://github.com/mixstart/mixphp

10293 次点击
所在节点    PHP
56 条回复
onanying
2017-10-11 18:26:27 +08:00
为啥没人发表下评论?
WuwuGin
2017-10-11 18:28:18 +08:00
我觉得造轮子本来就是多元化的体现,而且能更好理解一些之前模棱两可的概念。要是每个人都去搞未实现的事物的话,为什么现在人类还没有统治银河系😌。所以说造轮子是为了积累沉淀技术,我觉得没毛病。
onanying
2017-10-11 18:33:44 +08:00
@WuwuGin 要不要体验一下我造的这个轮子?
WuwuGin
2017-10-11 18:35:38 +08:00
@onanying 我现在在用 yii2,等有空可以试试新轮子。
onanying
2017-10-11 18:42:50 +08:00
@WuwuGin 我这个框架有很多设计要借鉴了 Yii2,组件、模型、路由等。
runningman
2017-10-11 20:35:50 +08:00
可以加个微信交流 27011861
runningman
2017-10-11 20:58:44 +08:00
写错了。微信 270115861.
wu1990
2017-10-11 21:10:29 +08:00
依赖 swoole,我想问数据库操作是异步的吗?不是用 swoole 的协程,也没有 yield,看着不像异步的,性能和原生 php 应该差不多
onanying
2017-10-11 21:35:25 +08:00
@wu1990 没有使用异步,暂时也不打算引入异步,后续会加入,性能比原生 PHP 要好,但是比 Apache/PHP-FPM 传统框架,比如:Yii/TP/CI 纯 PHP 框架,Yaf/Phalcon 这些的 C 扩展框架,都要好太多,具体对比测试: http://www.jianshu.com/p/f769b6be1caf。
onanying
2017-10-11 21:36:25 +08:00
@runningman 你可以进官方群。
onanying
2017-10-11 21:39:39 +08:00
MixPHP 并发性能全面对比测试: http://www.jianshu.com/p/f769b6be1caf
v2ex 还能更蠢一点么,句号都加入 href
sexrobot
2017-10-11 21:52:46 +08:00
看到 yii 风格的 namespace 有些反感
onanying
2017-10-11 21:56:22 +08:00
@sexrobot 哈哈,底层还是不一样的,好的思想借鉴一下啦。
vincenth520
2017-10-12 09:22:29 +08:00
看设计风格这些感觉跟 zanphp 很像
DukeAnn
2017-10-12 09:30:32 +08:00
这种自己开发的小众轮子多半不会有公司用,只能自己或者自己公司内部用
onanying
2017-10-12 09:34:55 +08:00
@vincenth520 zanphp,tencent-tsf 这些都是大量使用异步携程的框架,mixphp 更像是处于 zanphp 与 Phalcon 之间的位置。
onanying
2017-10-12 09:36:40 +08:00
@DukeAnn 技术爆炸的时代,小众轮子确实多半不会有公司用,你说的非常对,以后我路过的公司,我自己用吧,哈哈
Norie
2017-10-12 10:15:43 +08:00
膜拜
kancloud
2017-10-12 14:04:50 +08:00
没有细看,为手册放看云点个赞👍
onanying
2017-10-12 14:22:05 +08:00
@kancloud 看云还是很好的,现在 gitbook 网速差的一逼。

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

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

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

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

© 2021 V2EX