重载失效

オープン
#29 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
php
領域
tooling

調査の方向性

.watcher.php、composer.json、および composer run-script dev によって呼び出される server:watch エントリーポイントから始めます。示されている Fedora、PHP、fswatch のセットアップで問題を再現します。app、config、extend、.env の変更がどのように検出されるかを追跡し、その後、監視対象のファイルを保存すると reload が発生することを確認します。

索引モデルが issue の本文から書いたものです。

説明

操作系统:Fedora Linux 40 (Workstation Edition) 注: centos stream 10 根据本版本发行
内核版本:Linux 6.10.4-200.fc40.x86_64
开发环境:Linux x64
PHP 版本:8.3.7 | 8.3.10
fswatch 版本:1.14.0-12.fc40

启动方式(IDEA):Composer
Composer 版本:2.7.7
process-timeout: 0

.watcher.php

<?php
declare(strict_types=1);

use Hyperf\Watcher\Driver\FswatchDriver;

return [
    'driver' => FswatchDriver::class,
    'bin' => PHP_BINARY,
    'watch' => [
        'dir' => [
            'app',
            'config',
            'extend',
        ],
        'file' => [
            '.env'
        ],
        'scan_interval' => 1000,
    ],
    'ext' => [
        '.php',
        '.env'
    ],
];

composer.json:

"require": {
        "php": ">=8.3",
        "ext-gmp": "*",
        "ext-redis": "*",
        "endroid/qr-code": "^5.0",
        "hyperf/cache": "~3.1.0",
        "hyperf/command": "~3.1.0",
        "hyperf/config": "~3.1.0",
        "hyperf/database": "~3.1.0",
        "hyperf/db-connection": "~3.1.0",
        "hyperf/devtool": "^3.1",
        "hyperf/engine": "^2.10",
        "hyperf/framework": "~3.1.0",
        "hyperf/guzzle": "^3.1",
        "hyperf/http-message": "^3.1",
        "hyperf/http-server": "~3.1.0",
        "hyperf/logger": "~3.1.0",
        "hyperf/memory": "~3.1.0",
        "hyperf/paginator": "^3.1",
        "hyperf/phar": "^3.1",
        "hyperf/process": "~3.1.0",
        "hyperf/redis": "^3.1",
        "hyperf/validation": "^3.1",
        "hyperf/websocket-server": "^3.1",
        "khanamiryan/qrcode-detector-decoder": "^2.0",
        "spomky-labs/aes-key-wrap": "^7.0",
        "web-token/jwt-framework": "^4.0"
    },
    "require-dev": {
        "friendsofphp/php-cs-fixer": "^3.0",
        "hyperf/testing": "~3.1.0",
        "hyperf/watcher": "^3.1",
        "mockery/mockery": "^1.0",
        "phpstan/phpstan": "^1.0",
        "swoole/ide-helper": "^5.0"
    },
"dev": [
            "@close-dev",
            "@post-autoload-dump",
            "@php bin/hyperf.php server:watch"
        ],

控制台输出记录:
composer run-script dev

sh hyperf.sh
rm -rf runtime/container
@php bin/hyperf.php server:watch
[DEBUG] [command] Commands registered by Hyperf\Command\Listener\RegisterCommandListener
[DEBUG] Event Hyperf\Framework\Event\BootApplication handled by Hyperf\Command\Listener\RegisterCommandListener listener.
[DEBUG] Event Hyperf\Framework\Event\BootApplication handled by Hyperf\Config\Listener\RegisterPropertyHandlerListener listener.
[DEBUG] Event Hyperf\Framework\Event\BootApplication handled by Hyperf\DbConnection\Listener\RegisterConnectionResolverListener listener.
[DEBUG] Event Hyperf\Framework\Event\BootApplication handled by Hyperf\ExceptionHandler\Listener\ExceptionHandlerListener listener.
[DEBUG] Event Hyperf\Framework\Event\BootApplication handled by Hyperf\Paginator\Listener\PageResolverListener listener.
[DEBUG] Event Hyperf\Framework\Event\BootApplication handled by Hyperf\ExceptionHandler\Listener\ErrorExceptionHandler listener.
[DEBUG] Event Hyperf\Framework\Event\BootApplication handled by App\Listener\BeforeWorkerStartListener listener.
[DEBUG] Event Hyperf\Framework\Event\BootApplication handled by App\Listener\BeforeWorkerStartListener listener.
Generating optimized autoload files
Generated optimized autoload files containing 5746 classes

Start server ...
[DEBUG] [command] Commands registered by Hyperf\Command\Listener\RegisterCommandListener
[DEBUG] Event Hyperf\Framework\Event\BootApplication handled by Hyperf\Command\Listener\RegisterCommandListener listener.
[DEBUG] Event Hyperf\Framework\Event\BootApplication handled by Hyperf\Config\Listener\RegisterPropertyHandlerListener listener.
[DEBUG] Event Hyperf\Framework\Event\BootApplication handled by Hyperf\DbConnection\Listener\RegisterConnectionResolverListener listener.
[DEBUG] Event Hyperf\Framework\Event\BootApplication handled by Hyperf\ExceptionHandler\Listener\ExceptionHandlerListener listener.
[DEBUG] Event Hyperf\Framework\Event\BootApplication handled by Hyperf\Paginator\Listener\PageResolverListener listener.
[DEBUG] Event Hyperf\Framework\Event\BootApplication handled by Hyperf\ExceptionHandler\Listener\ErrorExceptionHandler listener.
[DEBUG] Event Hyperf\Framework\Event\BootApplication handled by App\Listener\BeforeWorkerStartListener listener.
[DEBUG] Event Hyperf\Framework\Event\BootApplication handled by App\Listener\BeforeWorkerStartListener listener.
[DEBUG] Event Hyperf\Framework\Event\BeforeMainServerStart handled by Hyperf\Process\Listener\BootProcessListener listener.
[DEBUG] Event Hyperf\Framework\Event\BeforeWorkerStart handled by Hyperf\Watcher\Listener\ReloadDotenvAndConfigListener listener.
[INFO] Worker#0 started.
[INFO] WebSocket Server listening at 0.0.0.0:9505
[INFO] HTTP Server listening at 0.0.0.0:9504
[INFO] HTTP Server listening at 0.0.0.0:9503
[INFO] HTTP Server listening at 0.0.0.0:9502
[INFO] HTTP Server listening at 0.0.0.0:9501
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\AfterWorkerStartListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\InitProcessTitleListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\WebSocketServer\Listener\InitSenderListener listener.
[DEBUG] Event Hyperf\Framework\Event\BeforeWorkerStart handled by Hyperf\Watcher\Listener\ReloadDotenvAndConfigListener listener.
[INFO] Worker#1 started.
[DEBUG] Event Hyperf\Framework\Event\BeforeWorkerStart handled by Hyperf\Watcher\Listener\ReloadDotenvAndConfigListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\AfterWorkerStartListener listener.
[INFO] Worker#2 started.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\InitProcessTitleListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\WebSocketServer\Listener\InitSenderListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\AfterWorkerStartListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\InitProcessTitleListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\WebSocketServer\Listener\InitSenderListener listener.
[DEBUG] Event Hyperf\Framework\Event\BeforeWorkerStart handled by Hyperf\Watcher\Listener\ReloadDotenvAndConfigListener listener.
[INFO] Worker#3 started.
[DEBUG] Event Hyperf\Framework\Event\BeforeWorkerStart handled by Hyperf\Watcher\Listener\ReloadDotenvAndConfigListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\AfterWorkerStartListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\InitProcessTitleListener listener.
[INFO] Worker#4 started.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\WebSocketServer\Listener\InitSenderListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\AfterWorkerStartListener listener.
[DEBUG] Event Hyperf\Framework\Event\BeforeWorkerStart handled by Hyperf\Watcher\Listener\ReloadDotenvAndConfigListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\InitProcessTitleListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\WebSocketServer\Listener\InitSenderListener listener.
[INFO] Worker#5 started.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\AfterWorkerStartListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\InitProcessTitleListener listener.
[DEBUG] Event Hyperf\Framework\Event\BeforeWorkerStart handled by Hyperf\Watcher\Listener\ReloadDotenvAndConfigListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\WebSocketServer\Listener\InitSenderListener listener.
[INFO] Worker#6 started.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\AfterWorkerStartListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\InitProcessTitleListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\WebSocketServer\Listener\InitSenderListener listener.
[DEBUG] Event Hyperf\Framework\Event\BeforeWorkerStart handled by Hyperf\Watcher\Listener\ReloadDotenvAndConfigListener listener.
[INFO] Worker#7 started.
[DEBUG] Event Hyperf\Framework\Event\OnManagerStart handled by Hyperf\Server\Listener\InitProcessTitleListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\AfterWorkerStartListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\InitProcessTitleListener listener.
[DEBUG] Event Hyperf\Framework\Event\OnStart handled by Hyperf\Server\Listener\InitProcessTitleListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\WebSocketServer\Listener\InitSenderListener listener.
[DEBUG] Event Hyperf\Framework\Event\BeforeWorkerStart handled by Hyperf\Watcher\Listener\ReloadDotenvAndConfigListener listener.
[DEBUG] Event Hyperf\Framework\Event\BeforeWorkerStart handled by Hyperf\Watcher\Listener\ReloadDotenvAndConfigListener listener.
[INFO] Worker#8 started.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\AfterWorkerStartListener listener.
[INFO] Worker#9 started.
[DEBUG] Event Hyperf\Framework\Event\BeforeWorkerStart handled by Hyperf\Watcher\Listener\ReloadDotenvAndConfigListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\InitProcessTitleListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\WebSocketServer\Listener\InitSenderListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\AfterWorkerStartListener listener.
[INFO] Worker#10 started.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\InitProcessTitleListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\AfterWorkerStartListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\WebSocketServer\Listener\InitSenderListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\InitProcessTitleListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\WebSocketServer\Listener\InitSenderListener listener.
[DEBUG] Event Hyperf\Framework\Event\BeforeWorkerStart handled by Hyperf\Watcher\Listener\ReloadDotenvAndConfigListener listener.
[INFO] Worker#11 started.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\AfterWorkerStartListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\Server\Listener\InitProcessTitleListener listener.
[DEBUG] Event Hyperf\Framework\Event\AfterWorkerStart handled by Hyperf\WebSocketServer\Listener\InitSenderListener listener.

问题:启动后,修改文件保存后,持续等待几分钟后仍然不会重载。

主要言語
PHP
スター
17
フォーク
12
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

hyperf/watcher のほかの issue

hyperf/watcher の issue をすべて見る

似ている issue

PHP の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。