资讯专栏INFORMATION COLUMN

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

SnaiLiu / 2561人阅读

摘要:异步队列消费者开发只提供了模式下运行控制器方法,并未提供主进程多子进程的进程模型,并未提供多线程处理。多线程异步队列服务只需写好控制器方法,然后在配置文件中配置下路由命名空间进程线程数量,就可在模式中启动多进程多线程模型的异步队列处理程序。

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

国内常用的框架

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

框架 特点 流行度 更加适合
ThinkPHP 易上手,文档友好、过度封装 超高 网页
Yii 安全性高、规范、性能稍差 网页
Codeigniter 简单、高效、文档友好 网页&API
Yaf/Phalcon C扩展,高性能 一般 API
后端开发业务场景

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

网页/后台管理开发

API开发

TCP服务器开发

UDP服务器开发

异步队列消费者开发

定时任务开发

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

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

现有 MVC 框架的弱项

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

HTTP/TCP/UDP服务器开发:还未有流行的PHP框架封装。

异步队列消费者开发:只提供了CLI模式下运行控制器方法,并未提供主进程多子进程的进程模型,并未提供多线程处理。

定时任务开发:还需依赖第三方工具crontab等,PHP框架本身不能实现。

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

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

MixPHP 试图解决这些

高性能与开发效率兼得:参考Yii、ThinkPHP、Codeigniter提高开发效率的特性,编写全部面向对象的MVC框架,使其同时支持LNMP架构与Swoole应用服务器,需要开发效率时采用LNMP传统架构,需要高性能API时,修改少量代码,即可切换为Swoole应用服务器,把框架类库预加载至内存,数据库按进程长连接,可达到Yaf/Phalcon的性能。

多线程异步队列服务:只需写好控制器方法,然后在配置文件中配置下路由命名空间、进程、线程数量,就可在CLI模式中启动多进程多线程模型的异步队列处理程序。

定时任务服务:只需写好控制器方法,然后配置下路由命名空间、定时循环条件,就可在CLI模式中启动动态多进程模型的定时任务处理程序。

TCP/UDP服务:一步步来,后续版本再考虑加入。

结尾

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

PHP是最好的语言

GitHub

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26055.html

相关文章

  • 使用 mixphp 处理其他框架 20% 的高并发部分

    摘要:如何使用优化高并发场景写库或者耗时计算在的接口中使用消息队列,把要入库的数据写入的类型中。高容错子进程异常奔溃时,主进程将重建子进程。高性能多进程运行,充分利用多个并行计算,性能强劲。 经常在群里听到一些朋友问:TP 的项目怎么迁移到 mixphp 来处理高并发,我通常都是回复需要重写,可是一个开发很久的 TP 项目,代码量巨大,又怎么可能会花大量时间成本来重写呢? 那么为何我们不尝试...

    silvertheo 评论0 收藏0
  • MixPHP:基于 Swoole 的常驻内存型 PHP 框架

    摘要:框架最新源代码行数行,因此可以很容易的改造它,成为你们公司的专属框架。也不同于其他基于的微服务框架,只聚焦于微服务治理,定位于开发的更多领域,覆盖从初创到亿元级体量的技术诉求。的授权全靠用户自愿购买,详情 MixPHP是什么 MixPHP 是秉承 普及 PHP 常驻内存型解决方案,促进 PHP 往更后端发展 的理念而创造,采用 Swoole 扩展作为底层引擎,围绕常驻内存的方式而设计,...

    王晗 评论0 收藏0
  • 使用 mixphp 打造多进程异步邮件发送

    摘要:消费者开发本例我们使用的多进程开发工具来完成这个需求,通常使用常驻进程来处理队列的消费,所以我们使用的类型,模式。中进程负责执行邮件发送任务。此时终端将打印成功收到测试邮件官网 注意:这个是 MixPHP V1 的范例 邮件发送是很常见的需求,由于发送邮件的操作一般是比较耗时的,所以我们一般采用异步处理来提升用户体验,而异步通常我们使用消息队列来实现。 传统 MVC 框架由于缺少多进程...

    EdwardUp 评论0 收藏0
  • swoole+Mixphp+CodeIgniter开发失踪儿童信息平台

    摘要:写基于和开发的失踪儿童信息平台。团圆系统的全称应该是公安部儿童失踪信息紧急发布平台,在新浪微博上有一个官方的微博账号,通过这个微博账号发布儿童失踪信息。 这是我在sf上的第一篇文章。写基于swoole、Mixphp和CodeIgniter开发的失踪儿童信息平台。 在2017年的时候,关注到有一个团圆系统,它是公安部专门为了快速扩散失踪儿童消息的平台,但是网上并没有找到这个平台的地址。当...

    jasperyang 评论0 收藏0
  • MixPHP 开发 API 接口简单实例

    摘要:注意这个是的范例是一款基于的常驻内存型高性能框架,框架的高性能特点非常适合开发接口,而且非常接近传统框架,所以开发接口时非常简单。下面做一个开发接口的简单实例从表,通过获取一篇文章。第四步使用测试,如下接口开发与测试完成,是不是很简单呀。 注意:这个是 MixPHP V1 的范例 MixPHP 是一款基于 Swoole 的常驻内存型 PHP 高性能框架,框架的高性能特点非常适合开发 A...

    weizx 评论0 收藏0

发表评论

0条评论

SnaiLiu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<