vaexal/hot-reload

热重载 PHP 脚本

0.1.0 2021-05-26 16:55 UTC

This package is auto-updated.

Last update: 2024-09-27 00:44:44 UTC


README

尝试实现 PHP 脚本的热重载(例如,Amp)

Build Status

安装

composer require --dev vajexal/hot-reload

使用方法

例如,Amp 服务器

server.php

<?php

require_once 'vendor/autoload.php';

use Amp\Http\Server\HttpServer;
use Amp\Http\Server\RequestHandler\CallableRequestHandler;
use Amp\Http\Server\Response;
use Amp\Http\Status;
use Amp\Loop;
use Amp\Socket;
use Psr\Log\NullLogger;

Loop::run(static function () {
    $servers = [
        Socket\Server::listen('0.0.0.0:1337'),
    ];

    $server = new HttpServer($servers, new CallableRequestHandler(static function () {
        return new Response(Status::OK, [], 'Hello World');
    }), new NullLogger);

    yield $server->start();
});
./vendor/bin/hot-reload server.php

现在您可以修改 server.php 并在不重启脚本的情况下看到更改

替代方案

watchman watch $(pwd)
watchman -- trigger $(pwd) hot-reload '*.php' -- php server.php
ls *.php | entr -r php server.php

注意

  • 包使用文件系统轮询,因此它将增加一些 CPU 使用率
  • vendor.idea.git 目录不被监视