How to hot update php code

(*-*)浩
Release: 2023-02-26 09:32:01
Original
3724 people have browsed it

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();
Copy after login

The file name is http_server.php

Run this script in the background:

php http_server.php &
Copy after login

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";
Copy after login

Now modify this line of code as follows:

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

View the process of http_server in Linux

ps axuf|grep http_server
Copy after login

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

kill -USR1 5913
Copy after login

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!

Related labels:
php
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template