这里以ZPHP框架作为演示,完成swoole的代码热更新,在WorkerStart回调函数中,载入ZPHP框架: (引荐进修:PHP视频教程)
use ZPHP\ZPHP; $zphp = null; $mimes = null; $http = new swoole_http_server('0.0.0.0',9501); $http->on('request', function (swoole_http_request $request, swoole_http_response $response){ //...... }); $http->on('WorkerStart',function($serv, $worker_id){ //框架载入 require __DIR__ . DIRECTORY_SEPARATOR . 'zphp' . DIRECTORY_SEPARATOR . 'ZPHP' . DIRECTORY_SEPARATOR . 'ZPHP.php'; global $zphp; $zphp = ZPHP::run(__DIR__, false, 'default'); global $mimes; $mimes = require "mimes.php"; }); $http->start();
文件名为http_server.php
在背景运转此剧本:
php http_server.php &
在浏览器输入192.168.1.116:9501举行http要求:
这是由于加载ZPHP框架后,访问了默许的控制器下的默许要领,个中一行代码为:
$data = $project."zchat runing in swoole!!!!\n";
如今修正此行代码以下:
$data = $project."The code is modified!!!!\n";
在Linux中检察http_server的历程
ps axuf|grep http_server
运用以下敕令向manager历程发送一个信号来重载worker历程:
kill -USR1 5913
可见4个worker历程的历程编号都和之前差别了,这说明manager历程已重载了worker历程
革新浏览器中的页面可见
热更新胜利~
这里小小总结一下:
代码热更新实在更新的是"WorkerStart"回调函数里的内容,也就是说我们的营业代码都要放到"WorkerStart"回调函数中。
以上就是php代码怎样热更新的细致内容,更多请关注ki4网别的相干文章!