初识Hyperf

  Ladies and gentlemen Welcome to lvlv Small broken station

  直接步入正题:

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

在框架组件中除了常见的协程版的 Mysql 客户端,还为您准备了协程版的 Eloquent ORMWebSocket 服务端及客户端JSON RPC 服务端及客户端GRPC 服务端及客户端Zipkin/Jaeger (OpenTracing) 客户端Guzzle HTTP 客户端Elasticsearch 客户端Consul 客户端ETCD 客户端AMQP 组件Apollo 配置中心阿里云 ACM 应用配置管理ETCD 配置中心基于令牌桶算法的限流器通用连接池熔断器Swagger 文档生成Swoole Tracker视图引擎Snowflake 全局 ID 生成器 等组件,省去了自己实现对应协程版本的麻烦。(复制粘贴的)

说说他的学习难度吧,经过我的一番百度 ,网上说的都是说如果你对laravel框架特别熟悉的话。就可以把他拿捏死,就是手到擒来, So easy。所以我认为只要自己愿意下功夫,就一定可以学会!

说这么多,那我们每个人肯定就都会有疑惑:

1.swoole框架和php框架有什么相同点和不同点?

2.为什么要用swoole框架?

3.Hyperf好用吗?

分析这些问题时,得先讲—讲swoole是什么:

Swoole 使用 C/C++ 语言编写,提供了 PHP 语言的异步多线程服务器、异步 TCP/UDP 网络客户端、异步 MySQL、异步 Redis、数据库连接池、AsyncTask、消息队列、毫秒定时器、异步文件读写、异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。

除了异步 IO 的支持之外,Swoole 为 PHP 多进程的模式设计了多个并发数据结构和IPC通信机制,可以大大 简化多进程并发编程的工作。其中包括了并发原子计数器、并发 HashTable、Channel、Lock、进程间通信IPC 等丰富的功能特性。

Swoole4.0 支持了类似 Go 语言的协程,可以使用完全同步的代码实现异步程序,PHP 代码无需额外增加任何 关键词,底层自动进行协程调度,实现异步IO。以上来自swoole官网:上链接:Swoole - PHP 协程框架

简单理解:就是swoole不是框架,而是一个C/C++实现的一个异步引擎

接下来就到问题了:

1.swoole框架和php框架有什么相同点和不同点?

相同点:

1)都是php语言(解释型语言)开发,都需要php底层支撑

不同点:

1 )php运行依赖php-fpm与fastcgi(什么是 FastCGI与php-fpm_change_any_time的博客-CSDN博客_fastcgi与php-fpm)php 框架的请求处理都是以进程为单位来同步执行的,hyperf依赖swoole是有线程与协程的支撑,可以自动进行协程调度,实现异步

2)原生php对资源消耗较大,处理数据能力较弱, swoole 可以提高php的处理性能

3)hyperf依赖swoole库的支撑,才能运行起来,如果swoole不支持最新版本php(比如8.0)则框架也无法使用,原生php语言没有这种限制。

2.为什么要用swoole框架?

1)这里可以返回再次读一次什么是hyperf。

2)Yii或者Laravel也可以手动配置swoole,只不过操作过程会复杂化,并且涉及三方SDK时会有一些深坑。

3)集成swoole的框架就是为了简化配置,操作与流程。

3 hyperf简单好学好用吗?

世上无难事,只怕有心人

  个人理解就是市场需要,在我本人在招聘网上看,很多招聘在介绍里都提到这个swoole,都是说会这个优先。但是我认为,自己应该是在保证自己已经学会的知识足够牢固,足够扎实,再去学习其他的,都不是大胃王,一口吃不成胖子。

好啦 光说不练假把式 直接开始安装吧。

Hyperf 对系统环境有一些要求,当您使用 Swoole 网络引擎驱动时,仅可运行于 Linux 和 Mac 环境下,但由于 Docker 虚拟化技术的发展,在 Windows 下也可以通过 Docker for Windows 来作为运行环境,通常来说 Mac 环境下,我们更推荐本地环境部署,以避免 Docker 共享磁盘缓慢导致 Hyperf 启动速度慢的问题。当您使用 Swow 网络引擎驱动时,则可在 Windows、Linux、Mac 下运行。

当您不想采用 Docker 来作为运行的环境基础时,您需要确保您的运行环境达到了以下的要求:

  • PHP >= 7.4 and <= 8.0
  • 以下任一网络引擎
    • Swoole PHP 扩展 >= 4.5,并关闭了 Short Name
    • Swow PHP 扩展 (Beta)
  • JSON PHP 扩展
  • Pcntl PHP 扩展
  • OpenSSL PHP 扩展(如需要使用到 HTTPS)
  • PDO PHP 扩展 (如需要使用到 MySQL 客户端)
  • Redis PHP 扩展 (如需要使用到 Redis 客户端)
  • Protobuf PHP 扩展 (如需要使用到 gRPC 服务端或客户端)

安装 Hyperf

Hyperf 使用 Composer 来管理项目的依赖,在使用 Hyperf 之前,请确保你的运行环境已经安装好了 Composer。

通过 Composer 创建项目

我们已经为您准备好的一个骨架项目,内置了一些常用的组件及相关配置的文件及结构,是一个可以快速用于业务开发的 Web 项目基础,在安装时,您可根据您自身的需求,对组件依赖进行选择。
执行下面的命令可以于当前所在位置创建一个 skeleton 项目

基于 Swoole 驱动:

composer create-project hyperf/hyperf-skeleton

基于 Swow 驱动:

composer create-project hyperf/swow-skeleton

还有docker的话 直接上链接吧:

docker 安装hyperf 流程_Miss 古月先生的博客-CSDN博客_docker 安装hyperf

  • 创建项目

cd /data/project

composer create-project hyperf/hyperf-skeleton

  • 启动项目

cd hyperf-skeleton

php bin/hyperf.php start

接下来如果你的环境没有问题的话,会遇到一个没有关闭了 Short Name

如果需要swoole关闭shortname,在php.ini中添加swoole.use_shortname = off 重启php

在这里插入图片描述

然后重启php,再次开启一遍,如果还是报那个没有关闭shortname 这时候去到你使用的php版本的与php.ini同级下的目录

然后进入到php-cli.ini中与在php.ini一样添加swoole.use_shortname = off 重启php

然后就好了 就直接域名加上9501就可以直接访问了。

官网教程:Hyperf

但是在使用的时候会遇到俩个问题

一个就是在自己直接关闭那个页面没有Ctrl+c结束进程,当你下次进来,再次开启就会报错。

还有一个就是你每次修改代码后

 都需要去重启一次 才会生效。这俩个问题就留到下篇文章啦。

这次就先这样了 以上大部分仅个人见解。

goodbye!!!

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值