纯 PHP 协程框架 Wind Framework 0.1.0 发布

栏目: 软件资讯 · 发布时间: 3年前

内容简介:Wind Framework 是我一开始基于纯 PHP 协程实现开发出的一个实验性项目,目的是为了测试纯 PHP 协程应用于工作中的可行性。但经过测试发现应对绝大部分 IO 密集型的场景是完全可行的,于是便基于此不断开发出来的...

纯  <a href='https://www.codercto.com/topics/18749.html'>PHP</a>  协程框架 Wind Framework 0.1.0 发布

Wind Framework 是我一开始基于纯 PHP 协程实现开发出的一个实验性项目,目的是为了测试纯 PHP 协程应用于工作中的可行性。但经过测试发现应对绝大部分 IO 密集型的场景是完全可行的,于是便基于此不断开发出来的框架。

基于此框架,可以使用纯 PHP 做到一个完全自足型的 PHP 程序。

传统的 php-fpm 做法,PHP 的应用场景非常有限,很多功能需要依赖周边 工具 做到,比如计划任务通过 crontab 来设置,消息队列可能以计划任务每分钟启动来执行,或通过进程的守护 Supervisord 来做一个很拙劣的长驻,基于对于数据库之类的连接数暴涨也要使用一些中间件,还有很多场景甚至是束手无策或者实现非常之差,php-fpm 碰到高并发时,实际并发数受到进程数的限制,想要把并发数做大实际付出也非常之大,所以往往企业规模做大,或者业务场景复杂之后都要引入其它语言的方案,这表面上是因为其它语言的生态问题,核心还是因为其它语言支持多线程或协程这两个重要的特性。

而基于纯 PHP 的协程框架,PHP 可以用相对非常少的资源实现以上的这些功能。

该框架是基于两个最重要的库 Workerman + Amphp 实现的。

  • Workerman 提供了 Socket 服务器、客户端,进程管理,Channel 等基础组件。

  • Amphp 提供了纯 PHP 的协程实现,以及协程的 MySQL 、Http 客户端等等。

目前框架拥有以下组件:

  • HTTP 服务器(支持基于控制器路由的动态程序和静态文件)

  • 依赖注入

  • 缓存(实现 PSR-16 SimpleCache 的协程缓存)

  • 进程信息收集组件

  • 定时任务组件

  • 协程 MySQL 客户端、支持连接池、查询构造器

  • 日志组件(基于 MonoLog,支持异步写入)

  • 自定义进程组件

  • 异步消息队列组件(支持 Redis 、Beanstalk 作为驱动)

  • 协程 Redis 客户端

  • TaskWorker(可将同步调用发到其它进程为异步调用)

  • 视图组件(支持 Twig 等多种实现)

PHP 从 7.0 开始大幅度提升了 PHP 的性能,从 8.0 开始又加入了 JIT 又能够大大提升程序的运算性能,这些性能的提升对于传统的 php-fpm 意义并不是很大,应用在长驻式的协程框架中才能把威力彻底发挥出来。

而根据目前的 PHP 相关讨论和提案,很可能会在 8.1版本开始引入官方的协程实现基础。到时候 Wind-Framework 也会及时跟进。

Wind-Framework GitHub 地址:https://github.com/wind-framework

Composer 包:https://packagist.org/packages/wind-framework/


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web安全测试

Web安全测试

霍普(Paco Hope)、沃尔瑟(Ben Waltber) / 傅鑫 / 清华大学出版社 / 2010-3 / 39.00元

《Web安全测试》内容简介:在你对Web应用所执行的测试中,安全测试可能是最重要的,但它却常常是最容易被忽略的。《Web安全测试》中的秘诀演示了开发和测试人员在进行单元测试、回归测试或探索性测试的同时,如何去检查最常见的Web安全问题。与即兴的安全评估不同的是,这些秘诀是可重复的、简洁的、系统的——可以完美地集成到你的常规测试套装中。 《Web安全测试》中的秘诀所覆盖的基础知识包括了从观察客......一起来看看 《Web安全测试》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具