Mix PHP V2.1 发布,基于 Swoole 4.4+ 单线程协程 PHP 框架

567 阅读2分钟

MixPHP 是什么

一个基于 Swoole 开发的高性能 PHP 框架,经过两年发展收获了很多中小型团队的支持,框架版本经历了:

  • V1.*: 基于 Swoole 的常驻内存型 PHP 高性能框架
  • V2.0: 基于 Swoole 的 FastCGI、常驻内存、协程三模 PHP 高性能框架
  • V2.1: 基于 Swoole 4.4+ 单线程协程 PHP 框架 🆕

更新

本次 v2.1 重构版本主要修改了框架核心封装部分,而功能库如:Database/Redis/Auth 等库使用方式只是微调,大致重构内容如下:

  • mix-php/mix 库修改为子模块的方式包含框架所有库,require mix/mix 时该库会替换 composer 上的同名库,用户提交 PR 时只需修改该库提交,贡献将出现在 mix-php/mix。
  • 从之前的多进程模型全部修改为基于 Swoole\Coroutine\Server 开发的单进程模型,完全协程化。
  • 移除了之前的协程组件自动隔离容器、 App 容器的封装概念,修改为类 Golang 风格的直接使用协程 Server 的开发方式,将之前的库封装代码移动到骨架代码中,让用户能更加细粒度的修改每一处细节。
  • 所有 composer 依赖库从 25 个缩减到 20 个,全部独立化,无强依赖,支持 8 种 PSR 规范。
  • 强化了 Bean 依赖注入功能,移除了之前的全局组件的概念,用 Bean 的 SINGLETON 取代。
  • 增加 mix/event 库引入事件机制。

与其他基于 Swoole 的框架比较

服务器全部基于 Swoole\Coroutine\Server 开发,线程模型与 Node.js 一样为单进程单线程模型 (现有其他 Swoole 框架基本都是多进程模型),组件封装风格参考 Golang,这样既拥有 Golang 的 CSP 并发模型,又无需像 Golang 一样处理数据的并发安全。

框架非常轻量灵活,现有组件全部基于 PSR 标准实现,均可独立使用,严格来讲 Mix 其实只封装了 mix/console 命令行开发组件,其他全部为选装。

框架集成了众多开箱即用的组件,方便快速开发,且全部与 Golang 使用风格非常类似。

我们的开发文档可能是所有框架中最详细的,源码自带 Demo,稍微修改一下即可使用。

全面采用 Swoole 原生协程与最新的 PHP Stream 一键协程化技术。

采用和 Golang 类似的高度灵活的开发方式,框架只提供底层库,而与具体功能相关的代码都在项目库中实现,用户能更加细粒度的修改每一处细节。

开发文档

MixPHP开发指南:

Github