分类分类
大小:9.41 MB 更新:2024/05/29
类别:其他软件系统:WinAll
Hyperf是一款非常专业且优秀的企业级协程框架,该框架具有性能高、灵活性高的特点,是基于Swoole
4.5+实现的,框架组件库除了常见的协程版的MySQL客户端、Redis客户端外,还提供了其它多种不同的组件,包括JSON RPC
服务器及客户端、AMQP组件等,省去了自己实现对应协程版本的麻烦,满足丰富的技术场景和业务场景,在框架设计上进行了大量的优化,从而能够确保超高性能的输出,同时为组件进行了大量的单元测试以保证逻辑的正确,也维护了高质量的文档,欢迎有需要的用户下载体验
高性能
全协程异步实现,性能远超所有传统 PHP-FPM 框架
生产可用
经历过长时间生产环境考验的企业级框架设计,稳定可靠
微服务
健全的微服务体系,gRPC、JSON RPC、服务发现、熔断,灵活完善
组件丰富
全组件化设计,超多常用组件,绝大部分组件均可复用于其它框架
分布式
基于相关组件可快速搭建出企业级的分布式系统,极速扩容
自动化测试
完备的自动化测试,从开发到生产交付全流程保障
简单化 协程化 组件化
开箱即用,快人一步
官方提供超多常用组件,随用随取
原生协程,超高性能
原生协程能力支持,性能强悍
丰富组件,任意组合
全组件化设计,可复用于其它框架
生产级别的协程框架
由 Swoole 4 原生协程强力驱动
通过配置文件定义路由路由的文件位于 hyperf-skeleton 项目的 config/routes.php ,下面是一些常用的用法示例。
通过注解来定义路由Hyperf 提供了极其强大和方便灵活的 注解 功能,在路由的定义上也毫无疑问地提供了注解定义的方式,Hyperf 提供了 @Controller 和 @AutoController 两种注解来定义一个 Controller,此处仅做简单的说明,更多细节请查阅 路由 章节。
通过 @AutoController 注解定义路由@AutoController 为绝大多数简单的访问场景提供路由绑定支持,使用 @AutoController 时则 Hyperf 会自动解析所在类的所有 public 方法并提供 GET 和 POST 两种请求方式。
使用 @AutoController 注解时需 use Hyperf\HttpServer\Annotation\AutoController; 命名空间;
驼峰命名的控制器,会自动转化为蛇形路由,以下为控制器与实际路由的对应关系示例:
通过 @Controller 注解定义路由@Controller 为满足更细致的路由定义需求而存在,使用 @Controller 注解用于表明当前类为一个 Controller 类,同时需配合 @RequestMapping 注解来对请求方法和请求路径进行更详细的定义。
我们也提供了多种快速便捷的 Mapping 注解,如 @GetMapping、@PostMapping、@PutMapping、@PatchMapping、@DeleteMapping 5 种便捷的注解用于表明允许不同的请求方法。
处理 HTTP 请求Hyperf 是完全开放的,本质上没有规定您必须基于某种模式下去实现请求的处理,您可以采用传统的 MVC 模式,亦可以采用 RequestHandler 模式 来进行开发。
我们以 MVC 模式 来举个例子:
在 app 文件夹内创建一个 Controller 文件夹并创建 IndexController.php 如下,index 方法内从请求中获取了 id 参数,并转换为 字符串 类型返回到客户端。
依赖自动注入依赖自动注入是 Hyperf 提供的一个非常强大的功能,也是保持框架灵活性的根基。
Hyperf 提供了两种注入方式,一种是大家常见的通过构造函数注入,另一种是通过 @Inject 注解注入,下面我们举个例子并分别以两种方式展示注入的实现;
假设我们存在一个 \App\Service\UserService 类,类中存在一个 getInfoById(int $id) 方法通过传递一个 id 并最终返回一个用户实体,由于返回值并不是我们这里所需要关注的,所以不做过多阐述,我们要关注的是在任意的类中获取 UserService 并调用里面的方法,一般的方法是通过 new UserService() 来实例化该服务类,但在 Hyperf 下,我们有更优的解决方法。
通过构造函数注入只需在构造函数的参数内声明参数的类型,Hyperf 会自动注入对应的对象或值。
通过 @Inject 注解注入只需对对应的类属性通过 @var 声明参数的类型,并使用 @Inject 注解标记属性 ,Hyperf 会自动注入对应的对象或值。
使用 @Inject 注解时需 use Hyperf\Di\Annotation\Inject; 命名空间;
通过上面的示例我们不难发现 $userService 在没有实例化的情况下, 属性对应的类对象被自动注入了。
不过这里的案例并未真正体现出依赖自动注入的好处及其强大之处,我们假设一下 UserService 也存在很多的依赖,而这些依赖同时又存在很多其它的依赖时,new 实例化的方式就需要手动实例化很多的对象并调整好对应的参数位,而在 Hyperf 里我们就无须手动管理这些依赖,只需要声明一下最终使用的类即可。
而当 UserService 需要发生替换等剧烈的内部变化时,比如从一个本地服务替换成了一个 RPC 远程服务,也只需要通过配置调整依赖中 UserService 这个键值对应的类为新的 RPC 服务类即可。
启动 Hyperf 服务由于 Hyperf 内置了协程服务器,也就意味着 Hyperf 将以 CLI 的形式去运行,所以在定义好路由及实际的逻辑代码之后,我们需要在项目根目录并通过命令行运行 php bin/hyperf.php start 来启动服务。
当 Console 界面显示服务启动后便可通过 cURL 或 浏览器对服务正常发起访问了,默认服务会提供一个首页 http://127.0.0.1:9501/,对于本章示例引导的情况下,也就是上面的例子所对应的访问地址为 http://127.0.0.1:9501/index/info?id=1。
重新加载代码由于 Hyperf 是持久化的 CLI 应用,也就意味着一旦进程启动,已解析的 PHP 代码会持久化在进程中,也就意味着启动服务后您再修改的 PHP 代码不会改变已启动的服务,如您希望服务重新加载您修改后的代码,您需要通过在启动的 Console 中键入 CTRL + C 终止服务,再重新执行启动命令 php bin/hyperf.php start 完成启动和重新加载。
Tips: 您也可以将启动 Server 的命令配置在 IDE 上,便可直接通过 IDE 的 启动/停止 操作快捷的完成 启动服务 或 重启服务 的操作。 且非视图开发时可以采用 TDD(Test-Driven Development) 测试驱动开发来进行开发,这样不仅可以省略掉服务重启和频繁切换窗口的麻烦,还可保证接口数据的正确性。
另外,在文档 协程组件库 一章中提供了多种由社区开发者支持的 热更新/热重载 的解决方案,如仍希望采用 热更新/热重载 方案可再深入了解。
多端口监听Hyperf 支持监听多个端口,但因为 callbacks 中的对象直接从容器中获取,所以相同的 Hyperf\HttpServer\Server::class 会在容器中被覆盖。所以我们需要在依赖关系中,重新定义 Server,确保对象隔离。
WebSocket 和 TCP 等 Server 同理。
同时 路由文件,或者 注解 也需要指定对应的 server,如下:
路由文件 config/routes.php
注解
事件除上述提到的 Event::ON_REQUEST 事件,框架还支持其他事件,所有事件名如下。
v2.1.10 - 2021-03-15修复
修复当使用 Arr::forget 方法在 key 为 integer 且不存在时,执行报错的问题。
#3351 修复 hyperf/validation 组件中,FormRequest 无法从协程上下文中获取到修改后的 ServerRequest,从而导致验证器验证失败的问题。
#3356 修复 hyperf/testing 组件中,客户端 Hyperf\Testing\Client 无法模拟构造正常的 UriInterface 的问题。
#3363 修复在入口文件 bin/hyperf.php 中自定义的常量,无法在命令 server:watch 中使用的问题。
#3365 修复当使用协程风格服务时,如果用户没有配置 pid_file,仍然会意外生成 runtime/hyperf.pid 文件的问题。
优化#3364 优化命令 phar:build,你可以在不使用 php 脚本的情况下执行 phar 文件,就像使用命令 ./composer.phar 而非 php composer.phar。
#3367 优化使用 gen:model 生成模型字段的类型注释时,尽量读取自定义转换器转换后的对量类型。
v2.1.9 - 2021-03-08修复#3326 修复使用 JsonEofPacker 无法正确解包自定义 eof 数据的问题。
#3330 修复因其他协程修改静态变量 $constraints,导致模型关系查询错误的问题。
新增#3325 为 Crontab 注解增加 enable 参数,用于控制当前任务是否注册到定时任务中。
优化#3338 优化了 testing 组件,使模拟请求的方法运行在独立的协程当中,避免协程变量污染。
v2.1.8 - 2021-03-01修复#3301 修复 hyperf/cache 组件,当没有在注解中设置超时时间时,会将超时时间强制转化为 0,导致缓存不失效的问题。
新增#3310 新增方法 Blueprint::comment(),可以允许在使用 Migration 的时候,设置表注释。
#3311 新增方法 RouteCollector::getRouteParser,可以方便的从 RouteCollector 中获取到 RouteParser 对象。
#3316 允许用户在 hyperf/db 组件中,注册自定义数据库适配器。
优化#3308 优化 WebSocket 服务,当找不到对应路由时,直接返回响应。
#3319 优化从连接池获取连接的代码逻辑,避免因重写低频组件导致报错,使得连接被意外丢弃。
新组件孵化rpc-multiplex 基于 Channel 实现的多路复用 RPC 组件。
db-pgsql 适配于 hyperf/db 的 PgSQL 适配器。
CIMCO Edit 其他软件276.25 MB7.5 简体中文版
详情CKplayer网页播放器 其他软件336 KB6.6 免费版
详情WordPress 其他软件6.7 MB4.1 英文版
详情Discuz论坛 其他软件4.05 MB官方版
详情Guns后台管理系统 其他软件12.5 MBv7.0.3 官方版
详情狂雨小说cms 其他软件7.8 MBv1.3.2 官方版
详情Slidev(开发幻灯片展示) 其他软件8.52 MBv0.10.2 官方版
详情魔众短链接系统 其他软件27.5 MBv2.0.0 官方版
详情易语言资源网源码下载工具 其他软件1.51 MBv1.0 免费版
详情W5 SOAR(自动化响应平台) 其他软件6.8 MBv0.4 官方版
详情魔众文档管理系统 其他软件28.8 MBv3.0.0 官方版
详情Milvus(矢量数据库) 其他软件6.0 MBv1.1.0 官方版
详情FlatBuffers(序列化库) 其他软件1.95 MBv2.0.0 官方版
详情Wendasns(问答社区系统) 其他软件7.8 MBv1.1.5 官方版
详情DM企业建站系统 其他软件14.0 MBv2021.5a 官方版
详情Ember.js(JavaScript框架) 其他软件1.66 MBv3.27.0 官方版
详情Exifr(EXIF读取库) 其他软件42.1 MBv7.0.0 官方版
详情RavenDB数据库 其他软件64.5 MBv5.1.7 官方版
详情iWebShop(开源商城系统) 其他软件11.5 MBv5.9.210101 官方版
详情OElove(婚恋交友系统) 其他软件28.7 MBv8.1 官方版
详情点击查看更多
ThinkSNS 其他软件20 MB4.6.1 免费版
详情CKplayer网页播放器 其他软件336 KB6.6 免费版
详情vqqq.com带20000数据库的笑话程序 其他软件300 KB2.0 官方版
详情EXE文件加口令源代码 其他软件799 KB3.0 官方版
详情PPTV网络电视系统 其他软件1.27 MB4.0.1.0 官方版
详情建站专家网站建设系统 其他软件20.02 MB1.0.4.1819 官方版
详情Turbo C 2.0库函数速查 其他软件71 KB1.0 官方版
详情中国联通SGIP1.2短消息网关客户端程序 其他软件54 KB1.37 官方版
详情伤感文学CMS文章发布系统 其他软件4.11 MB2.0 官方版
详情娱乐先锋论坛 其他软件1.31 MB5.3 官方版
详情笔试考试源代码 其他软件1.17 MB1.0.0 官方版
详情Deluge For Linux 其他软件2.79 MB1.0.0 官方版
详情幻影留言版(ASP多用户版) 其他软件567 KB5.30 官方版
详情GeniusBBS 其他软件475 KB1.1 官方版
详情上机考试源代码 其他软件1.01 MB1.0.0 官方版
详情vqqq.com在线网页编辑asp源码 其他软件22 KB1.0.0 官方版
详情CIMCO Edit 其他软件276.25 MB7.5 简体中文版
详情狐狗网页源代码显示器 其他软件434 KBBuild1214 官方版
详情农业企业网站模板中英繁企业网站管理系统源码 其他软件2.18 MB2010 官方版
详情vqqq.com多用户ip统计asp源码 其他软件134 KB1.0.0 官方版
详情点击查看更多
震东济南棋牌官方网站安卓版 休闲益智61.5MBv7.2.0
详情彩虹多多彩票正版 生活服务33.2MBv9.9.9
详情水果机投币游戏机单机版免费版 休闲益智0MBv1.0
详情老式水果机下载 休闲益智0MBv1.0
详情心悦吉林麻将完整版 休闲益智0MBv1.0
详情欢乐拼三张单机版2025 休闲益智61.5MBv7.2.0
详情888彩票网 生活服务33.2MBv9.9.9
详情开元棋脾595cc 休闲益智61.5MBv7.2.0
详情贪玩娱乐苹果官方下载 休闲益智0MBv7.2.0
详情琼崖海南麻将15app下载 休闲益智61.5MBv7.2.0
详情王道棋牌官网最新版 休闲益智61.5MBv7.2.0
详情波克城市棋牌 休闲益智61.5MBv7.2.0
详情彩虹多多专享版 生活服务33.2MBv9.9.9
详情角落棋牌官方网站 休闲益智61.5MBv7.2.0
详情牛牛下载金币版苹果 休闲益智61.5MBv7.2.0
详情禅游斗地主下载抖音 休闲益智61.5MBv7.2.0
详情狂暴捕鱼官网504.1 休闲益智61.5MBv7.2.0
详情狂暴捕鱼官网504.1版 休闲益智61.5MBv7.2.0
详情ky棋牌网站大全98 休闲益智61.5MBv7.2.0
详情森林舞会飞禽走兽 休闲益智0MBv1.0
详情点击查看更多