vaexal / hot-reload
热重载 PHP 脚本
0.1.0
2021-05-26 16:55 UTC
Requires
- php: ^7.4|^8.0
- ext-mbstring: *
- ext-pcntl: *
- amphp/amp: ^2.5
- amphp/byte-stream: ^1.8
- amphp/file: ^1.0
- amphp/process: ^1.1
- symfony/polyfill-php80: ^1.22
Requires (Dev)
- ext-eio: *
- ext-uv: *
- amphp/http-client: ^4.5
- amphp/http-server: ^2.1
- amphp/log: ^1.1
- amphp/php-cs-fixer-config: dev-master#e8930dcb166f4bcbc8bd3c37e5535bd8960ffea9
- amphp/phpunit-util: ^1.4
- symfony/console: ^5.1
This package is auto-updated.
Last update: 2024-09-27 00:44:44 UTC
README
尝试实现 PHP 脚本的热重载(例如,Amp)
安装
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
目录不被监视