由于 Swoole 服务运行过程中 PHP 文件是常驻内存运行的,这样可以避免重复读取磁盘、重复解释编译 PHP,以便达到最高性能,这便是 swoole热更新 。所以更改业务代码后必须手动 reload 或者 restart 才能生效。
think-swoole 扩展提供了热更新功能,在检测到相关目录的文件有更新后会自动 reload,从而不需要手动进行 reload 操作,方便开发调试。
如果你的应用开启了调试模式,默认是开启热更新的。原则上,在部署模式下不建议开启文件监控,一方面有性能损耗,另外一方面对文件所做的任何修改都需要确认无误才能进行更新部署。
ThinkPHP 6 在应用的根目录下默认有一个 .example.env 文件,复制这个文件,并重新命名为 .env 。当定义这个特殊的 .env 环境变量文件后,里面设置了APP_DEBUG = true 会默认开启热更新,另外,也可以直接把 /app/config/swoole.php 里面的 hot_update 配置中的 enable 设置为 true。
.env
config/swoole.php