亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频

File-Watcher 組件

用于在 EasySwoole 中實現熱重啟,讓開發變得更簡便。

組件要求

  • easyswoole/spl: ^1.3
  • easyswoole/component: ^2.2

安裝方法

composer require easyswoole/file-watcher

倉庫地址

easyswoole/file-watcher

WatchRule

監控目錄:

$watchRule = new \EasySwoole\FileWatcher\WatchRule(EASYSWOOLE_ROOT."/App");

指定忽略目錄:

/**@var \EasySwoole\FileWatcher\WatchRule $watchRule **/
$watchRule->setIgnorePaths([EASYSWOOLE_ROOT."/App/Api", EASYSWOOLE_ROOT."/App/Admin"]);

指定忽略文件:

/**@var \EasySwoole\FileWatcher\WatchRule $watchRule **/
$watchRule->setIgnoreFiles([EASYSWOOLE_ROOT."/App/Api/Teacher.php", EASYSWOOLE_ROOT."/App/Admin/Teacher.php"]);

指定匹配后綴:

/**@var \EasySwoole\FileWatcher\WatchRule $watchRule **/
$watchRule->setType($watchRule::SCAN_TYPE_SUFFIX_MATCH);
//$watchRule->setType($watchRule::SCAN_TYPE_IGNORE_SUFFIX);
$watchRule->setSuffix(['php']);
type為SCAN_TYPE_SUFFIX_MATCH時,只匹配后綴必須在suffix規則數組的文件。 type為SCAN_TYPE_IGNORE_SUFFIX時,會忽略掉后綴在suffix規則數組的文件。

FileWatcher

設置監控程序:

$fileWatcher = new \EasySwoole\FileWatcher\FileWatcher();
$fileWatcher->setScannerDriver(\EasySwoole\FileWatcher\Scanner\Inotify::class);
$fileWatcher->setScannerDriver(\EasySwoole\FileWatcher\Scanner\FileScanner::class);
二選一 不調用此方法 存在inotify擴展默認為Inotify::class反之FileScanner::class

增加監控規則:

/**@var \EasySwoole\FileWatcher\FileWatcher $fileWatcher **/
$fileWatcher->addRule(new \EasySwoole\FileWatcher\WatchRule(__DIR__));
$fileWatcher->addRule(new \EasySwoole\FileWatcher\WatchRule(EASYSWOOLE_ROOT. '/App'));
可進行多次調用 對不同目錄設置不同的規則

設置異常回調:

/**@var \EasySwoole\FileWatcher\FileWatcher $fileWatcher **/
$fileWatcher->setOnException(function (\Throwable $throwable){

});

設置檢測周期(默認1000ms):

/**@var \EasySwoole\FileWatcher\FileWatcher $fileWatcher **/
$fileWatcher->setCheckInterval(1000);

設置觸發回調(文件有變化):

/**@var \EasySwoole\FileWatcher\FileWatcher $fileWatcher **/
$fileWatcher->setOnChange(function (array $list, \EasySwoole\FileWatcher\WatchRule $rule){
    // list為變化的文件列表
});

啟動(swoole服務中使用):

/**@var \EasySwoole\FileWatcher\FileWatcher $fileWatcher **/
/**@var \Swoole\Server $server **/
$fileWatcher->attachServer($server);

EasySwoole 中用于熱重啟

例如在 EasySwoole 開發模式中,我們希望當有代碼變動的時候,實現 Server 重啟,只需要在 EasySwoole 的全局事件 EasySwooleEvent 中注冊一下即可實現。 示例代碼如下:

<?php

namespace EasySwoole\EasySwoole;

use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Swoole\EventRegister;
use EasySwoole\FileWatcher\FileWatcher;
use EasySwoole\FileWatcher\WatchRule;

class EasySwooleEvent implements Event
{
    public static function initialize()
    {
        date_default_timezone_set('Asia/Shanghai');
    }

    public static function mainServerCreate(EventRegister $register)
    {
        $watcher = new FileWatcher();
        $rule = new WatchRule(EASYSWOOLE_ROOT . "/App"); // 設置監控規則和監控目錄
        $watcher->addRule($rule);
        $watcher->setOnChange(function () {
            Logger::getInstance()->info('file change ,reload!!!');
            ServerManager::getInstance()->getSwooleServer()->reload();
        });
        $watcher->attachServer(ServerManager::getInstance()->getSwooleServer());
    }
}

注意,reload 僅僅針對 Worker進程 加載的代碼有效。

主站蜘蛛池模板: 性欧美一级 | 国产成人性色生活片 | 成年人视频在线播放 | 免费一级a毛片在线播放直播 | 99色99 | 又黄又爽又无遮挡免费的网站 | 国产欧美综合一区二区三区 | 中文字幕一区二区三 | 国产福利av| 一级做a爰片久久毛片a | 午夜视频免费看 | 久久精品福 | 色噜噜国产精品视频一区二区 | 中文字幕精品一二三四五六七八 | 久久久久久久九九九 | 一区二区av | 国产精品中文字幕在线观看 | 欧美三级一区二区三区 | 天天干免费视频 | 欧美日韩高清一区二区三区 | 91精品国产综合久久久 | 麻豆电影免费观看 | 一级毛片影院 | www.超碰在线观看 | 成人免费视频视频 | 麻豆精品国产剧情观看男友 | 亚洲高清色图 | 精品黄色| 中文日韩欧美 | 色天天综合久久久久综合片 | 毛片黄| 成年人在线观看视频 | 免费婷婷 | 日韩精品中文字幕一区二区三区 | 亚洲欧洲日韩在线 | 欧美亚洲天堂网 | 国产精品theav| 亚洲影视中文字幕 | 日韩av中文字幕在线 | 色a在线| 国产在线观看免费麻豆 |