Home >Backend Development >PHP Problem >How to hot update php code

How to hot update php code

(*-*)浩
(*-*)浩Original
2019-10-11 10:47:463759browse

How to hot update php code

The ZPHP framework is used as a demonstration here. To implement hot update of swoole code, in the WorkerStart callback function, load the ZPHP framework: (Recommended learning: PHP video tutorial)

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();

The file name is http_server.php

Run this script in the background:

php http_server.php &

Enter 192.168.1.116:9501 in the browser for http Request:

This is because after loading the ZPHP framework, the default method under the default controller is accessed. One line of code is:

$data = $project."zchat runing in swoole!!!!\n";

Now modify this line of code as follows:

$data = $project."The code is modified!!!!\n";

View the process of http_server in Linux

ps axuf|grep http_server

Use the following command to send a signal to the manager process to reload the worker process:

kill -USR1 5913

It can be seen that the process numbers of the four worker processes are the same as before It’s different, which means that the manager process has overloaded the worker process

Refresh the page in the browser to see

Hot update is successful~

Here is a small summary:

Code hot update actually updates the content in the "WorkerStart" callback function, which means that our business code must be placed in the "WorkerStart" callback function.

The above is the detailed content of How to hot update php code. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:What does php mainly do?Next article:What does php mainly do?