- 软件介绍
- 相关专题
- 下载地址
Hyperf是一个协同框架,可以帮助用户配置各种数据请求模式,让中间件读取数据更快,方便在不同设备上读取数据,提高数据处理效率,解决异步无阻塞系统的开发问题,帮助平台扩展数据访问线程,避免过多访客造成服务器阻塞;有了这个软件,你可以快速创建新的协同,配置协同工作计划,构建协同环境,配置协同运行控制计划,并在Parallel中限制并发协同流程的最大数量,从而帮助用户更好地开发数据处理终端,快速配置数据读取线程,并结合框架组件和Hyperf!
软件功能
Hyperf是一个基于swole 4.5+的高性能、高灵活性的PHP协作框架,内置协作服务器和大量常用组件。与基于PHP-FPM的传统框架相比,Hyperf在性能上有了质的提升,在提供超高性能的同时保持了极其灵活的可扩展性。标准组件都是基于PSR标准实现的,并且是基于强依赖注入设计的,因此确保了大多数组件或类是可替换和可重用的。
除了协作版常见的MySQL客户端和Redis客户端,我还准备了协作版的雄辩ORM、WebSocket服务器和客户端、JSON RPC服务器和客户端、GRPC服务器和客户端、Zipkin/Jaeger (OpenTracing)客户端、Guzzle HTTP客户端、Elasticsearch客户端、Consul客户端、ETCD客户端、AMQP组件、Apollo配置中心、阿里巴巴云ACM应用配置管理、ETCD配置中心、基于令牌桶算法的限流器、通用连接池、fuse、Swagger文档生成、Swoole Tracker、视图引擎、雪花全局ID生成器等组件
Hyperf还提供了基于PSR-11的依赖注入容器、注释、面向AOP方面的编程、基于PSR-15的中间件、定制流程、基于PSR-14的事件管理器、Redis/rabbtmq消息队列、自动模型缓存、基于PSR-16的缓存、Crontab二级定时任务、国际化、Validation表单验证器等。
软件特色
hyperspeed+flexibility =Hyperf,从名字上看,我们把超级速度和灵活性作为Hyperf。
对于超高速,基于Swoole协同学,我们在帧设计上做了大量优化,保证超高性能输出。
为了灵活性,我们基于Hyperf注入组件,组件基于PSR标准的契约和Hyperf定义的契约实现,这样框架内的大多数组件或类都是可替换的。
基于以上特点,Hyperf将拥有丰富的可能性,如实现Web服务、网关服务、分布式中间件、微服务架构、游戏服务器、物联网(IOT)等。
官方教程
依赖自动注入
依赖自动注入是Hyperf提供的一个非常强大的功能,也是保持框架灵活的基础。
Hyperf提供了两种注入方法,一种是通过构造函数的普通注入,另一种是通过@Inject注释的注入。我们举个例子,分别用两种方式展示注入的实现。
假设我们有一个AppServiceUserService类,该类中有一个getInfoById(int $Id)方法,该方法传递一个id并最终返回一个用户实体。既然这里的返回值不是我们需要关注的,我们就不做过多的阐述了。我们应该注意从任何类获取UserService并调用它的方法。一般的方法是通过new UserService()实例化服务类,但是在Hyperf,我们有更好的解决方案。
通过构造函数注入只需要在构造函数的参数中声明参数的类型,Hyperf会自动注入对应的对象或值。
使用@Inject注释进行注入。
只需用@var为相应的类属性声明参数的类型,并用@Inject注释标记该属性。Hyperf将自动注入相应的对象或值。
使用@Inject注释时,请使用Hyperfdianotationinject;命名空间;
通过上面的例子,我们可以很容易地发现,对应于该属性的类对象是自动注入的,而没有实例化$userService。
然而,这里的案例并没有真正展示依赖自动注射的好处和优势。我们假设UserService也有很多依赖关系,这些依赖关系同时也有很多其他的依赖关系,实例化new的方式需要手动实例化很多对象并调整相应的参数位。但是,在Hyperf,我们不需要手动管理这些依赖关系,只需要声明最终使用的类。
当需要替换UserService以及其他剧烈的内部变化时,比如用RPC远程服务替换本地服务,只需要将调整依赖关系中UserService键值对应的类配置为新的RPC服务类即可。
启动Hyperf服务。
As 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来终止服务,然后重新执行start命令php bin/hyperf.php start来完成启动和重新加载。
双端口监视器
Hyperf支持监听多个端口,但由于回调中的对象是直接从容器中获取的,因此容器中相同的Hyperfhttpserverserver::类将被覆盖。因此,我们需要在依赖关系中重新定义服务器,以确保对象隔离。
像WebSocket和TCP这样的服务器都是一样的。
同时,路由文件或注释还需要指定相应的服务器,如下所示:
路由文件config/routes.php
给…作注解
事件
除了上面提到的事件::ON_REQUEST之外,该框架还支持其他事件,所有事件的名称如下。
常见问题
Inject 或 Value 注解不生效
2.0使用将注入和值注入构造函数的功能。以下两种情况可能导致无效注射,请注意。
1.原始类不使用Inject或Value,但是父类使用Inject或Value,并且原始类已经编写了构造函数,而父类的构造函数没有被调用。
这将导致原始类不生成代理类,而是在实例化时调用自己的构造函数,因此不可能执行父类的构造函数。因此,父类的代理类中的方法_ _ handlePropertyHandler将不会被执行,注入或值注释也不会生效。
2.原始类不使用注入或值,但在Trait中使用注入或值。
因此,原始类不会生成代理类,因此不可能在构造函数中执行_ _ handlePropertyHandler,因此Trait的Inject或Value注释不会生效。
基于以上两种情况可以看出,原类是否生成代理类是非常重要的。因此,如果将Trait和父类与Inject或Value一起使用,可以通过在原始类中添加Inject来解决上述两种情况。
异步队列消息丢失。
使用异步队列组件时,如果发现句柄中的方法没有执行,请先检查以下情况:
1.Redis是不是和别人分享,新闻被别人消费了?
2.本地流程中是否有被其他流程消耗掉的残渣?
下面提供了一个简单的解决方案:
1、killall php
2.修改异步队列配置通道。
使用AMQP组件报告swooleerror:必须在coroutine错误中调用API。
您可以在config/autoload/amqp.php配置文件中将params.close _ on _ destroy更改为false。
当使用SWOOLE版本和视图组件时,提供程序出现404。
使用swole版并查看组件。如果接口404有问题,可以尝试删除config/autoload/server.php文件中的static_handler_locations配置项。
这种配置下的路径将被视为静态文件路由,因此如果配置了/的话,所有接口都将被视为文件路径,从而产生接口404。
- 安卓合集
- 软件合集
- 浏览器
- 电脑管家
- 安卓游戏
软件排行榜
热门推荐
-
VMware InstallBuilder Enterprise破解版
v20.12.0 / 347 MB / 简体中文
-
Spark Studio官方版
v2.6.3 / 7.78 MB / 简体中文
-
Yearning SQL审核平台官方版
v2.3.2 / 10.2 MB / 简体中文
-
Protege官方版
v5.5 / 38.3 MB / 简体中文
-
HUAWEI LiteOS Studio官方版
v1.45.6 / 115 MB / 简体中文
-
Huawei LiteOS官方版
v5.0.0 / 87.6 MB / 简体中文
-
C语言代码实例助手官方版
v1.0 / 38.5 MB / 简体中文
-
idle python中文汉化版
v3.7 / 1.62 MB / 简体中文
-
Metabase官方版
v0.37.5 / 45.8 MB / 简体中文
-
编程猫硬件助手官方版
v1.4.1.0 / 39.3 MB / 简体中文
装机必备软件
-
word文档密码破解工具应用软件
-
冰点还原永久免费版系统软件
-
人生日历应用软件
-
一彩送货单管理系统应用软件
-
Process View系统软件
-
开心手机恢复大师其他类别
-
pdf文件阅读器应用软件
-
视频剪辑格式工厂应用软件
-
PhotoMetri应用软件
-
specinker应用软件
-
miwifi驱动驱动工具
-
海洋色音效助手影音软件
-
乐播投屏影音软件
-
seo外链助手网络软件
-
AES安全加密记事本安全相关





