组件嗨(Hyperf)化计划

介绍

happy-join-hyperf
本计划由 Hyperf 使用者自行发起并加入,主要为了解决从其他 PHP框架 转到 Hyperf框架 开发时,核心组件无法被代替,导致需要重写大量代码的问题。

需要嗨化的组件,可以使用以下命令加入此计划

composer require limingxinleo/happy-join-hyperf --dev

当我们将仓库 push 到 Github 之后,就可以被自动识别,如下图所示

第一个嗨化的组件

这里介绍第一个被 Hyperf 化的组件

illuminate/cache

前不久,群里有小伙伴希望可以为 hyperf/cache 增加 tags 功能,当我第一次听到 tags 的时候,完全是懵逼状态,
这是个什么东西?

后来发现,这是 Laravel 的一个特性,如果没有使用过的人,完全不知道这个特性的功能。但对于大量使用此功能的 Laravel 开发者,迁移项目的时候,这个特性可能就显得额外重要了。
所以,就有了这个可以直接使用 illuminate/cache 的需求。而移植组件,对普通开发者而言,或者对于不熟悉 Hyperf 的开发者而言,确实有些困难。

于是,我便花了一上午的时间,将此组件做了移植,并进行开源。

嗨化规则

我希望所有嗨化的组件可以尽量遵守以下规则:

  1. 保留原组件的 LICENSE
  2. 尽量保留原组件命名空间
  3. 依赖 happy-join-hyperf 组件,方便 Github 识别
  4. READMD.md 中写明白与原组件的区别
  5. 保持一个可以持续开源的心态,为自己的组件负责,严禁当 甩手掌柜

关于 Hyperf

Hyperf 是基于 Swoole 4.5+ 实现的高性能、高灵活性的 PHP 协程框架,内置协程服务器及大量常用的组件,性能较传统基于 PHP-FPM 的框架有质的提升,提供超高性能的同时,也保持着极其灵活的可扩展性,标准组件均基于 PSR 标准 实现,基于强大的依赖注入设计,保证了绝大部分组件或类都是 可替换可复用 的。

框架组件库除了常见的协程版的 MySQL 客户端Redis 客户端,还为您准备了协程版的 Eloquent ORMWebSocket 服务端及客户端JSON RPC 服务端及客户端GRPC 服务端及客户端OpenTracing(Zipkin, Jaeger) 客户端Guzzle HTTP 客户端Elasticsearch 客户端Consul、Nacos 服务中心ETCD 客户端AMQP 组件Nats 组件Apollo、ETCD、Zookeeper、Nacos 和阿里云 ACM 的配置中心基于令牌桶算法的限流器通用连接池熔断器Swagger 文档生成Swoole TrackerBlade、Smarty、Twig、Plates 和 ThinkTemplate 视图引擎Snowflake 全局ID生成器Prometheus 服务监控 等组件,省去了自己实现对应协程版本的麻烦。

Hyperf 还提供了 基于 PSR-11 的依赖注入容器注解AOP 面向切面编程基于 PSR-15 的中间件自定义进程基于 PSR-14 的事件管理器Redis/RabbitMQ 消息队列自动模型缓存基于 PSR-16 的缓存Crontab 秒级定时任务Sessioni18n 国际化Validation 表单验证 等非常便捷的功能,满足丰富的技术场景和业务场景,开箱即用。

本作品采用《CC 协议》,转载必须注明作者和本文链接
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 9

这个名称有点意思!!!

1年前 评论
李铭昕 (楼主) 1年前

作为lumen的深度使用者和illuminate/cache的第一个需求方,本人对李铭昕充满的感激,同时对Hyperf团队的高效和无私无比钦佩,感谢Hyperf团队让我们拥有PHP的无限可能

1年前 评论

去年夏天我开启过一个类似的项目,整个项目的规划非常宏伟:把整个laravel框架自带的组件移植到hyperf,包括passport,sanctum,花了一两个月的时间,甚至已经完成了一部分组件的移植工作——最后发现两个框架无论在底层实现还是设计风格上差别都很大,就算完成移植也会显得不伦不类,再加上当时公司业务上的开发需求增多,就流产了。

1年前 评论
李铭昕 (楼主) 1年前
李铭昕 (楼主) 1年前

这样移植过来没问题,但是如果每次 Illuminate\Cache 更新之后 都需要移植 那就不是理想的移植效果了

1年前 评论
李铭昕 (楼主) 1年前
yulei745 (作者) 1年前
李铭昕 (楼主) 1年前
1年前 评论
李铭昕 (楼主) 1年前
李铭昕 (楼主) 1年前
Alone88 (作者) 1年前
李铭昕 (楼主) 1年前

希望大佬,添加sqlsrv 的驱动。

1年前 评论
李铭昕 (楼主) 1年前

大佬, laravel-admin呢, 免去写后台的困扰。 :joy: :joy: :joy:

1年前 评论

支持一下!!奈何公司业务太多,无法分身参与啦~

1年前 评论

今天准备写个云信的组件,但是搞半天没弄懂到底怎么加入composer包。。。

7个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!