WIN10 Docker 环境下安装Hyperf,高性能PHP协程框架 升级版

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第10天 点击查看活动详情

前言

两年刚开始接触Hyperf写了一篇文章:WIN10 Docker 环境下安装Hyperf,高性能PHP协程框架image.png

差九天整整两年,有兴趣可以点开开看看,刚点开发现图片都加载不出来,还好在知乎也发过一次,所以换了一下知乎里面的图片的图片,现在感觉有点稚嫩和繁琐,但是讲的一些文字的内容还是挺有意思。

今天还是从最开始的步骤开始讲起,最后还得上自动部署,对接昨天的element 框架。

安装步骤

composer安装

需要确保已安装composer,这里我已经安装完毕。使用composer -V可以查版本

image.png

如果没有安装可以直接进入官网下载:
getcomposer.org/download/

下载完成后,在Win10中双击打开安装就行了,按理来说会自动创建环境变量,不需要手动添加环境变量: image.png

composer 创建项目

选取一个合适的文件夹,打开PowerShell输入一下命令创建项目:

composer create-project hyperf/hyperf-skeleton spider-admin-api
复制代码

spider-admin-api是我自定义的文件夹名称,然后会有很多创建项目的询问,因为自己仅仅只想做一个后台的接口简单项目,所以一直回车就行了,看下创建好的目录:

image.png

docker运行项目

跟两年前的讲解太啰嗦了,今天的docker 非常简单,拉取镜像之前看看目前最新的镜像是哪个了:## hyperf/hyperf

image.png 根据官网推荐的来,PHP7.4版本的,alpine-v3.12的。

image.png

docker pull hyperf/hyperf:7.4-alpine-v3.12-swoole
复制代码

我本地的目录是:D:\CodeProject\PhpProject\spider-admin-api 启动容器命令:

docker run --name spider-admin-api  -v /D/CodeProject/PhpProject/spider-admin-api:/opt/www  -p 9551:9501 -w /opt/www -id    hyperf/hyperf:7.4-alpine-v3.12-swoole
复制代码

效果:

image.png 此时项目还没有启动,需要进入到容器中使用,这里补充最近学到的一个小知识,在docker run ....启动容器命令中我使用了-w /opt/www它的意思是进入容器默认工作目录

启动项目

进入容器:

docker  exec -it  spider-admin-api /bin/sh
复制代码

image.png

这样进入容器直接接入了默认的工作目录,手动启动的时候就不用输入前面的目录了,现在就这个Hyperf框架就启动,访问127.0.0.1:9551看看:

image.png

到现在就可以在Win10本地进行开发了,在宿主机中的文件改动会同步映射到容器内,但是Hyperf有一个和编译型语言的的框架一样需要重启项目才能使代码生效,官方文档这样解释道:

由于 Hyperf 是持久化的 CLI 应用,也就意味着一旦进程启动,已解析的 PHP 代码会持久化在进程中,也就意味着启动服务后您再修改的 PHP 代码不会改变已启动的服务,如您希望服务重新加载您修改后的代码,您需要通过在启动的 Console 中键入 CTRL + C 终止服务,再重新执行启动命令 php bin/hyperf.php start 完成启动和重新加载。

所以每次在win10上开发的时候需要打开一个命令行窗口进入容器,有代码改动想让它生效必须 CTRL +C 终止服务,再使用php bin/hyperf.php start启动才行。

虽然官方也提供了自动重新加载代码的方案,但是多多少少会有一些问题。最方便的就是在代码IDE中配置docker命令进行容器内部框架重新启动,但是遇到需要命令行创建控制器,模型,迁移文件等等操作时还是要进入容器操作。

所以这里就体现出了Mac的好处,哈哈。

总结

今天稍微回顾了一下Hyperf框架在Win10环境下的最简单的初始化操作,还是有点点与传统的项目不同,同时还感觉到Docker真是个好东西,PHP好多扩展安装都简化了,都直接在Docker里面有了。

最近加了一些Golang的讨论群总是能看到Hyperf框架的一些影子,感觉主要是Hyperf非常适合在一些微服务容器环境场景下,好多Golang的开发者都是来自PHP ,哈哈,感觉Hyperf越来越好了,用的人越来越多,可以看出来PHP还是在短时间内不会退出历史的舞台,继续加油!!!

猜你喜欢

转载自juejin.im/post/7128199749890474021