首頁 > 後端開發 > PHP問題 > php程式碼怎麼熱更新

php程式碼怎麼熱更新

(*-*)浩
發布: 2023-02-26 09:32:01
原創
3745 人瀏覽過

php程式碼怎麼熱更新

這裡以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程式碼怎麼熱更新的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板