返回介绍

Watcher

发布于 2021-04-03 03:37:35 字数 5181 浏览 1178 评论 0 收藏 0

自从 2.0 版本使用了 BetterReflection 来收集扫描目录内的 语法树反射数据,导致扫描速度相较 1.1 慢了不少。

首次启动,因为没有任何缓存,所以会比较慢,当二次启动时,会按照文件修改时间,进行动态收集,但因为仍需要实例化 BetterReflection,所以启动时间仍然比较长。

Watcher 组件除了解决上述启动问题,还提供了文件修改后立马重启的功能。

安装

composer require hyperf/watcher --dev

配置

发布配置

php bin/hyperf.php vendor:publish hyperf/watcher

配置说明

配置默认值备注
driverScanFileDriver默认定时扫描文件驱动
binphp用于启动服务的脚本 例如 php -d swoole.use_shortname=Off
watch.dirapp, config监听目录
watch.file.env监听文件
watch.interval2000扫描间隔(毫秒)

支持驱动

驱动备注
Hyperf\Watcher\Driver\ScanFileDriver无需扩展
Hyperf\Watcher\Driver\FswatchDriver需要安装 fswatch
Hyperf\Watcher\Driver\FindDriver需要安装 find,MAC 下需要安装 gfind
Hyperf\Watcher\Driver\FindNewerDriver需要安装 find

fswatch 安装

Mac

brew install fswatch

Ubuntu/Debian

apt-get install fswatch

其他

wget https://github.com/emcrisostomo/fswatch/releases/download/1.14.0/fswatch-1.14.0.tar.gz \
&& tar -xf fswatch-1.14.0.tar.gz \
&& cd fswatch-1.14.0/ \
&& ./configure \
&& make \
&& make install

启动

因为目录的关系,需要在项目根目录中运行。

php bin/hyperf.php server:watch

不足

  • 暂时 Alpine Docker 环境下,稍微有点问题,后续会完善。
  • 删除文件和修改.env需要手动重启才能生效。
  • vendor 中的文件需要使用 classmap 形式自动加载才能被扫描。(即执行composer dump-autoload -o)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文