Hyperf 发布 v1.1.14 版本及超全局变量组件
更新内容
本周更新主要为 JSON-RPC 组件做了大量的优化工作和为 AMQP 增加了 KeepaliveIO 功能,同时我们还发布了 hyperf/super-globals 组件,通过安装该组件,底层会自动的 hook 掉 $_GET、$_POST、$_REQUEST、$_SERVER、$_COOKIE、$_SESSION 这些超全局变量,使之可以保留 PHP-FPM 下的用法,又不会导致协程间的数据混淆。同时我们还修复了一些组件的 🐛Bug,发布于 1.1.14 版,强烈建议使用到 JSON-RPC、AMQP、Aliyun ACM 和 devtool 的用户更新。
直接访问 官网 hyperf.io 或 文档 hyperf.wiki 查看更新内容。
新增
- #1166 为 AMQP 增加 KeepaliveIO 功能;
- #1208 为 JSON-RPC 的响应增加了
error.data.code
值来传递 Exception Code; - #1208 为
Hyperf\Rpc\Contract\TransporterInterface
增加了recv
方法; - #1215 新增 hyperf/super-globals 组件,用来适配一些不支持 PSR-7 的第三方包;
- #1219 为 AMQP 消费者增加
enable
属性,通过该属性来控制该消费者是否跟随 Server 一同启动;
修复
- #1208 修复 Exception 和 error 在 JSON-RPC TCP Server 下无法被正确处理的问题;
- #1208 修复 JSON-RPC 没有检查 Request ID 和 Response ID 是否一致的问题;
- #1223 修复 ConfigProvider 扫描器不会扫描 composer.json 内 require-dev 的配置;
- #1254 修复执行
init-proxy.sh
命令在某些环境如Alpine下会报 bash 不存在的问题;
优化
- #1208 优化了 JSON-RPC 组件的部分逻辑;
- #1174 调整了
Hyperf\Utils\Parallel
在输出异常时的格式,现在会一同打印 Trace 信息; - #1224 允许 Aliyun ACM 配置中心的配置获取进程解析 UTF-8 字符,同时在 Worker 启动后会自动获取一次配置,以及拉取的配置现在会传递到自定义进程了;
- #1235 在 AMQP 生产者执行 declare 后释放对应的连接;
修改
- #1227 升级
jcchavezs/zipkin-php-opentracing
依赖至 0.1.4 版本;
关于 Hyperf
Hyperf 是基于 Swoole 4.4+
实现的高性能、高灵活性的 PHP 协程框架,内置协程服务器及大量常用的组件,性能较传统基于 PHP-FPM
的框架有质的提升,提供超高性能的同时,也保持着极其灵活的可扩展性,标准组件均基于 PSR 标准 实现,基于强大的依赖注入设计,保证了绝大部分组件或类都是 可替换
与 可复用
的。
框架组件库除了常见的协程版的 MySQL 客户端
、Redis 客户端
,还为您准备了协程版的 Eloquent ORM
、WebSocket 服务端及客户端
、JSON RPC 服务端及客户端
、GRPC 服务端及客户端
、OpenTracing(Zipkin, Jaeger) 客户端
、Guzzle HTTP 客户端
、Elasticsearch 客户端
、Consul 客户端
、ETCD 客户端
、AMQP 组件
、Nats 组件
、Apollo、ETCD、Zookeeper 和阿里云 ACM 的配置中心
、基于令牌桶算法的限流器
、通用连接池
、熔断器
、Swagger 文档生成
、Swoole Tracker
、Blade、Smarty、Twig、Plates 和 ThinkTemplate 视图引擎
、Snowflake 全局ID生成器
、Prometheus 监控
等组件,省去了自己实现对应协程版本的麻烦。
Hyperf 还提供了 基于 PSR-11 的依赖注入容器
、注解
、AOP 面向切面编程
、基于 PSR-15 的中间件
、自定义进程
、基于 PSR-14 的事件管理器
、Redis/RabbitMQ 消息队列
、自动模型缓存
、基于 PSR-16 的缓存
、Crontab 秒级定时任务
、Session
、i18n 国际化
、Validation 表单验证
等非常便捷的功能,满足丰富的技术场景和业务场景,开箱即用。
框架初衷
尽管现在基于 PHP 语言开发的框架处于一个百花争鸣的时代,但仍旧未能看到一个优雅的设计与超高性能的共存的完美框架,亦没有看到一个真正为 PHP 微服务铺路的框架,此为 Hyperf 及其团队成员的初衷,我们将持续投入并为此付出努力,也欢迎你加入我们参与开源建设。
设计理念
Hyperspeed + Flexibility = Hyperf
,从名字上我们就将 超高速
和 灵活性
作为 Hyperf 的基因。
- 对于超高速,我们基于 Swoole 协程并在框架设计上进行大量的优化以确保超高性能的输出。
- 对于灵活性,我们基于 Hyperf 强大的依赖注入组件,组件均基于 PSR 标准 的契约和由 Hyperf 定义的契约实现,达到框架内的绝大部分的组件或类都是可替换的。
基于以上的特点,Hyperf 将存在丰富的可能性,如实现 单体 Web 服务,API 服务,网关服务,分布式中间件,微服务架构,游戏服务器,物联网(IOT)等。
文档齐全
我们投入了大量的时间用于文档的建设,以解决各种因为文档缺失所带来的问题,文档上也提供了大量的示例,对新手同样友好。
Hyperf 官方开发文档
生产可用
我们为组件进行了大量的单元测试以保证逻辑的正确,目前存在 1291
个单测共 3803
个断言条件,同时维护了高质量的文档,在 Hyperf 正式对外开放(2019年6月20日)之前,便已经过了严酷的生产环境的考验,我们才正式的对外开放该项目,现在已有很多的大型互联网企业都已将 Hyperf 部署到了自己的生产环境上并稳定运行。
官网及交流
Github 👈👈👈👈👈 点 Star 支持我们
Gitee 码云 👈👈👈👈👈 点 Star 支持我们
Hyperf 官网
Hyperf 文档
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
为什么说LinkedHashMap是Java中最大的数据结构? 了解一下?
云栖号:https://yqh.aliyun.com第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! Map 家族数量众多,其中 HashMap 和 ConcurrentHashMap 用的最多,而 LinkedHashMap 似乎则是不怎么用的,但是他却有着顺序。两种,一种是添加顺序,一种是访问顺序。 LinkedHashMap 继承了 HashMap。那么如果是你,你怎么实现这两个顺序呢? 如果实现添加顺序的话,我们可以在该类中,增加一个链表,每个节点对应 hash 表中的桶。这样,循环遍历的时候,就可以按照链表遍历了。只是会增大内存消耗。 如果实现访问顺序的话,同样也可以使用链表,但每次读取数据时,都需要更新一下链表,将最近一次读取的放到链尾。这样也就能够实现。此时也可以跟进这个特性实现 LRU(Least Recently Used) 缓存。 如何使用? 下面是个小 demo LinkedHashMap<Integer, Integer> map = new LinkedHashMap<>(16, 0....
- 下一篇
Jmockdata 4.2.0 发布,随机模拟 Java 数据
Jmockdta 是一款实现模拟 JAVA 类型或对象的实例化并随机初始化对象的数据的工具框架。 The plugin of Jmockdata what through random algorithm mock java data. Jmockdata 插件通过随机算法模拟Java数据。 Feature 支持丰富多样的数据类型模拟,包括:Java基本类型、字符串、枚举、日期、数组、多维数组、集合[List|Set|Map]、枚举、Java对象等 支持通过正则表达式反向模拟数据 支持泛型 支持继承 支持循环依赖、自依赖(手动开启enabledCircle) 支持忽略字段 支持改变 mockConfig 来自定义模拟数据策略 支持 JDK1.8+ 更新内容 修复正则表达式[a-z][0-9][A-Z]生成数据错误问题 支持JDK8+ 支持JDK8日期类型LocalDateTime,LocalDate,LocalTime和java.sql.Timestamp
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7设置SWAP分区,小内存服务器的救世主
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7,CentOS8安装Elasticsearch6.8.6