系统软件 应用软件 图形软件 行业软件 安全相关 网络软件 聊天软件 影音软件 教育教学 驱动工具 编程开发 插件下载 源码下载 APP电脑版 其他类别

Hyperf官方版

v2.1.10

Hyperf官方版

  • 软件大小:9.41 MB
  • 软件语言:简体中文
  • 软件授权:共享软件
  • 软件类型:编程开发
  • 软件平台:WinAll
  • 更新时间:2022-01-27 15:11
  • 星级评分:4级
  • 软件官网:https://www.downza.com/
好评:50%顶一个
坏评:50踩一个

Hyperf简介

Hyperf是一个协同框架,可以帮助用户配置各种数据请求模式,让中间件读取数据更快,方便在不同设备上读取数据,提高数据处理效率,解决异步无阻塞系统的开发问题,帮助平台扩展数据访问线程,避免访客过多造成阻塞;有了这个软件,你可以快速创建新的协同学,配置协同学工作方案,搭建协同学环境,配置协同学运行控制方案,限制在Parallel中同时运行的协同学的最大数量,帮助用户更好地开发数据处理终端,快速配置数据读取线程,结合Hyperf提供的框架组件和其他组件设计新的服务系统!

Hyperf软件功能

Hyperf是基于Swoole 4.5+的高能灵活的PHP协同框架,内置协同学和大量常用组件。与传统的基于PHP-FPM的框架相比,它可以在保持极其灵活的可扩展性的同时提供超高的能量。标准组件都是基于PSR标准实现的,基于强依赖注入设计,保证了大多数组件或类是可替换、可重用的。

除了协同版常见的MySQL客户端和Redis客户端之外,还有enough ORM、WebSocket服务器和客户端、ON RPC服务器和客户端、GRPC服务器和客户端、Zipkin/Jaeger(开放追踪)客户端、Guzzle HTTP客户端、Elasticsearch客户端、Consul客户端、ETCD客户端、AMQP组件、Apollo配置中心、阿里巴巴云A应用配置管理、ETCD配置中心、基于令牌桶算法的限流器、通用连接池、fuse、Swagger文档生成、Swoole Tracker、视图引擎、雪花全局ID生成器等组件的协同版本,节省了

Hyperf还提供了基于PSR-11的依赖注入容器、注释、面向AOP方面的编程、基于PSR-15的中间件、定制流程、基于PSR-14的事件管理器、Redis/rabbtmq消息队列、自动模型缓存、基于PSR-16的缓存、Cntab二级计时任务、国际化和Validation表单验证器。

Hyperf软件特色

超速度+灵活性= Hyperf。从名字上看,我们把超速度和灵活性看作Hyperf的基因。

对于超高速,我们在基于Swoole协同学的框架设计上做了大量的优化,以保证超高的能量输出。

为了灵活性,我们基于Hyperf强大的依赖注入组件。组件是基于PSR标准的契约和Hyperf定义的契约实现的,因此框架中的大多数组件或类都是可替换的。

基于以上特性,Hyperf将会有丰富的可能性,比如Web服务、服务、分布式中间件、微服务架构、游戏、物联网(IOT)等的实现。

Hyperf教程

依赖自动注射

依赖自动注入是Hyperf提供的一个非常强大的功能,也是保持框架灵活的基础。

Hyperf提供了两种注入方法,一种是通过构造函数,另一种是通过@Inject标注。让我们举一个例子,用两种方式展示注入的实现。

假设我们有一个AppServiceUserService类,类中有一个getInfoById(int $id)方法,它传递一个Id,最后返回一个用户实体。因为这里的返回值不是我们需要关注的,所以就不做过多的阐述了。我们应该注意的是从任何类中获取UserService并调用里面的方法。一般的方法是通过新的UserService()实例化服务类,但是我们在Hyperf下有更好的解决方案。

通过构造函数注入,只需要在构造函数的参数中声明参数的类型,Hyperf就会自动注入对应的对象或值。

使用@Inject注释进行注入

只需用@var声明对应泛型的参数类型,并用@Inject注解标记泛型,Hyperf就会自动注入对应的对象或值。

使用Hyperf di annotation @ Inject;命名空间;

通过上面的例子,不难发现$userService是自动注入了相应的类对象而没有实例化的。

然而,这里的案例并没有真正反映自动依赖注入的好处和优势。我们假设UserService也有很多依赖项,当这些依赖项同时也有很多其他依赖项时,新的实例化方法需要手动实例化很多对象并调整相应的参数位,而在Hyperf中,我们不需要手动管理这些依赖项,只需要声明最终使用的类即可。

但是,当UserService需要进行诸如替换等剧烈的内部更改时,比如用RPC远程服务替换本地服务,只需要通过配置将依赖关系中UserService键值对应的类调整为新的RPC服务类即可。

开始Hyperf服务

因为Hyperf内置了协同学,这意味着Hyperf将以CLI的形式运行,所以在定义了路由和实际逻辑代码之后,我们需要通过命令行在项目根目录下运行php bin/hyperf.php start来启动服务。

当Console界面显示服务启动后,可以通过cL或浏览器正常访问服务。默认情况下,该服务将提供一个主页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来完成启动和重新加载。

双端口监视器

/[/k0/因此,我们需要在依赖关系中重新定义服务器,以确保对象隔离。

像WebSocket和TCP这样的服务器都是一样的。

同时,路由文件或注释也需要指定相应的,如下所示:

路由文件config/utes.php

给…作注解

事件

除了上面提到的事件::ON_REQUEST之外,该框架还支持其他事件,所有事件的名称如下。

Hyperf常见问题

“注入”或“值”注释没有效果。

2.0在构造函数中使用了注入和值的函数。以下两种情况可能导致注射失败。请注意使用。

1.原类没有使用Inject或者Value,但是父类使用了Inject或者Value,原类写了一个构造函数,同时没有调用父类构造函数。

这将导致原始类不生成代理类,而是在实例化时调用自己的构造函数,因此不可能执行父类的构造函数。因此,父类代理类中的方法__handlePpertyHandler不会被执行,因此Inject或Value注释不会生效。

2.最初的类没有使用注入或值,但是注入或值在特性中使用。

这将导致原始类不生成代理类,因此无法在构造函数中执行__handlePpertyHandler,因此Trait的Inject或Value注释不会生效。

基于以上两种情况可以看出,原始类是否生成代理类是非常重要的,所以如果使用Trait和带有Inject或Value的父类,在原始类中添加一个Inject就可以解决以上两种情况。

异步队列消息丢失

如果您发现在使用异步队列组件时没有执行句柄中的方法,请执行以下操作:

1.Redis是不是和别人分享,新闻被别人消费?

2.本地流程中是否有被其他流程消耗掉的残渣?

提供了以下万无一失的解决方案:

1、killall php

2.修改异步队列配置通道

使用AMQP组件报告错误:必须在错误代码中调用API。

您可以在config/toload/amqp.php配置文件中将params.close _ on _ destroy更改为false。

使用Swole版和查看组件时,404会出现在访问界面中。

如果使用Swoole版本和视图组件的接口404有问题,可以尝试删除config/toload/中的static_handler_locations配置项。php文件。

这种配置下的路径将被视为静态文件路由,因此如果配置了/的话,所有接口都将被视为文件路径,从而产生接口404。

收起介绍展开介绍
  • 安卓合集
  • 软件合集
  • 浏览器
  • 电脑管家
  • 安卓游戏
更多 >> 安卓合集安卓合计

热门推荐

装机必备软件