首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
Hyperf框架介绍
安装Hyperf
Hyperf生命周期
Hyperf协程
Hyperf配置
Hyperf注解功能
Hyperf中的依赖注入
Hyperf事件机制
Hyperf使用AOP
Hyperf路由
Hyperf中间件
Hyperf控制器
Hyperf请求详解
Hyperf响应详解
Hyperf异常处理
Hyperf中使用缓存
Hyperf中使用日志
Hyperf中使用分页器
Hyperf命令行详解
Hyperf中的视图
Hyperf中的视图引擎
Hyperf中的国际化
Hyperf验证器
Hyperf中的session管理
Hyperf中使用文件系统
Hyperf的数据库操作
Hyperf数据库查询构造器
Hyperf数据库模型
Hyperf模型创建命令
Hyperf关联模型
Hyperf查询分页
Hyperf模型事件
Hyperf模型缓存
Hyperf数据库迁移
Hyperf数据修改器
Hyperf极简DB组件
Hyperf中的API资源构造器
Hyperf模型全文检索
Hyperf微服务架构
Hyperf微服务-JSON RPC服务
Hyperf微服务-服务注册
Hyperf微服务-服务重试
Hyperf微服务-服务熔断与降级
Hyperf微服务-服务限流
Hyperf微服务-配置中心
Hyperf微服务-调用链追踪
Hyperf微服务-服务监控
Hyperf微服务-分布式事务
Hyperf使用snowflake
Hyperf中创建TCP/UDP服务器
Hyperf中创建WebSocket服务器
Hyperf中创建socket.io服务
Hyperf创建协程服务端
Hyperf中的Redis异步队列
Hyperf中使用AMQP 组件
Hyperf集成kafkaf协程客户端
Hyperf集成Redis协程客户端
Hyperf集成Guzzle客户端
Hyperf集成Elasticsearch客户端
Hyperf集成ETCD协程客户端
Hyperf集成websocket协程客户端
Hyperf集成Nacos协程客户端
Hyperf组件-连接池
Hyperf组件-自定义进程
Hyperf组件-辅助类
Hyperf组件-定时任务
Hyperf组件-Task
Hyperf组件-枚举类
Hyperf组件-信号处理器
Hyperf组件-开发者工具
Hyperf组件-Swagger
应用部署-DockerSwarm集群搭建
应用部署-DaoCloud Devops搭建
应用部署-Supervisor部署
应用部署-Nginx反向代理
应用部署-阿里云日志服务
当前位置:
首页>>
技术小册>>
Swoole高性能框架-Hyperf
小册名称:Swoole高性能框架-Hyperf
## 服务器要求 Hyperf 对系统环境有一些要求,当您使用 Swoole 网络引擎驱动时,仅可运行于 Linux 和 Mac 环境下,但由于 Docker 虚拟化技术的发展,在 Windows 下也可以通过 Docker for Windows 来作为运行环境,通常来说 Mac 环境下,我们更推荐本地环境部署,以避免 Docker 共享磁盘缓慢导致 Hyperf 启动速度慢的问题。当您使用 Swow 网络引擎驱动时,则可在 Windows、Linux、Mac 下运行。 hyperf/hyperf-docker 项目内已经为您准备好了各种版本的 Dockerfile ,或直接基于已经构建好的 hyperf/hyperf 镜像来运行。 当您不想采用 Docker 来作为运行的环境基础时,也可以考虑使用 Box 来作为运行的基础环境,如果您希望自行完成环境搭建,则您需要确保您的运行环境达到了以下的要求: - PHP >= 8.0 - 以下任一网络引擎 - Swoole PHP 扩展 >= 4.5,并关闭了 Short Name - Swow PHP 扩展 - JSON PHP 扩展 - Pcntl PHP 扩展(仅在 Swoole 引擎时) - 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 下开发 假设您的本机环境并不能达到 Hyperf 的环境要求,或对于环境配置不是那么熟悉,那么您可以通过以下方法来运行及开发 Hyperf 项目: #### 启动容器 可以根据实际情况,映射到宿主机对应的目录,以下以 /workspace/skeleton 为例 如果 docker 启动时开启了 selinux-enabled 选项,容器内访问宿主机资源就会受限,所以启动容器时可以增加 --privileged -u root 选项 ```asp docker run --name hyperf \ -v /workspace/skeleton:/data/project \ -p 9501:9501 -it \ --privileged -u root \ --entrypoint /bin/sh \ hyperf/hyperf:8.0-alpine-v3.15-swoole ``` 查看php版本: `php -v` ```asp bash-5.1# php -v PHP 8.0.25 (cli) (built: Oct 26 2022 12:04:58) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.0.25, Copyright (c) Zend Technologies with Zend OPcache v8.0.25, Copyright (c), by Zend Technologies bash-5.1# ``` #### 查看swoole版本: `php -i` ```asp swoole Swoole => enabled Author => Swoole Team <team@swoole.com> Version => 5.0.3 ``` #### 创建项目 ```asp cd /data/project composer create-project hyperf/hyperf-skeleton ``` 项目代码目录结构: ```asp hyperf-skeleton/ ├── Dockerfile ├── LICENSE ├── README.md ├── app │ ├── Controller │ ├── Exception │ ├── Listener │ └── Model ├── bin │ └── hyperf.php ├── composer.json ├── composer.lock ├── config │ ├── autoload │ ├── config.php │ ├── container.php │ └── routes.php ├── deploy.test.yml ├── phpstan.neon ├── phpunit.xml ├── runtime ├── test │ ├── Cases │ ├── HttpTestCase.php │ └── bootstrap.php └── vendor ├── autoload.php ... ``` #### 启动项目 ```asp cd hyperf-skeleton php bin/hyperf.php start ``` 控制台输出: ```asp bash-5.1# php bin/hyperf.php start [DEBUG] Event Hyperf\Framework\Event\BootApplication handled by Hyperf\Config\Listener\RegisterPropertyHandlerListener listener. [DEBUG] Event Hyperf\Framework\Event\BootApplication handled by Hyperf\ExceptionHandler\Listener\ErrorExceptionHandler listener. [DEBUG] Event Hyperf\Framework\Event\BootApplication handled by Hyperf\ExceptionHandler\Listener\ExceptionHandlerListener listener. [DEBUG] Event Hyperf\Framework\Event\BootApplication handled by Hyperf\DbConnection\Listener\RegisterConnectionResolverListener listener. [DEBUG] Event Hyperf\Framework\Event\BeforeMainServerStart handled by Hyperf\Process\Listener\BootProcessListener listener. [DEBUG] Event Hyperf\Framework\Event\OnManagerStart handled by Hyperf\Server\Listener\InitProcessTitleListener listener. [DEBUG] Event Hyperf\Framework\Event\OnStart handled by Hyperf\Server\Listener\InitProcessTitleListener listener. [INFO] Worker#0 started. [INFO] HTTP Server listening at 0.0.0.0:9501 ``` #### 测试 访问` http://ip:9501` ![](/uploads/images/20230530/0c1222d0a3d4a642b07313b8ec645e38.png) 接下来,就可以在宿主机 /workspace/skeleton/hyperf-skeleton 中看到您安装好的代码了。 由于 Hyperf 是持久化的 CLI 框架,当您修改完您的代码后,通过 CTRL + C 终止当前启动的进程实例,并重新执行 php bin/hyperf.php start 启动命令即可。 ### 后台进程启动服务器 `nohup php hyperf.php start &` ### 存在兼容性问题的扩展 由于 Hyperf 基于 Swoole 协程实现,而 Swoole 4 带来的协程功能是 PHP 前所未有的,所以与不少扩展都仍存在兼容性的问题。 以下扩展(包括但不限于)都会造成一定的兼容性问题,不能与之共用或共存: - xhprof - xdebug (当 PHP 版本 >= 8.1 且 Swoole 版本大于等于 5.0.2 时可用) - blackfire - trace - uopz
上一篇:
Hyperf框架介绍
下一篇:
Hyperf生命周期
该分类下的相关小册推荐:
经典设计模式PHP版
Magento零基础到架构师(库存管理)
PHP8入门与项目实战(8)
PHP合辑1-基础入门
剑指PHP(从入门到进阶)
Laravel(10.x)从入门到精通(十九)
Laravel(10.x)从入门到精通(十)
Laravel(10.x)从入门到精通(十四)
PHP8入门与项目实战(7)
Swoole高性能框架-SwooleWorker
Laravel(10.x)从入门到精通(十二)
PHP高性能框架-Swoole