Maison  >  Article  >  développement back-end  >  Comment mettre à jour à chaud le code php

Comment mettre à jour à chaud le code php

(*-*)浩
(*-*)浩original
2019-10-11 10:47:463721parcourir

Comment mettre à jour à chaud le code php

Le framework ZPHP est utilisé comme démonstration ici Pour implémenter la mise à jour à chaud du code swoole, dans la fonction de rappel WorkerStart , chargez le framework ZPHP : (Apprentissage recommandé : Tutoriel vidéo 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();

Le nom du fichier est http_server.php

Exécutez ce script en arrière-plan :

php http_server.php &

Entrez 192.168.1.116:9501 dans le navigateur pour la requête http :

En effet, après le chargement du framework ZPHP, la méthode par défaut sous le contrôleur par défaut est accessible. Une ligne de code est :

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

Modifiez maintenant cette ligne de. codez comme suit :

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

Affichez le processus http_server sous Linux

ps axuf|grep http_server

Utilisez la commande suivante pour envoyer un signal au processus gestionnaire pour recharger le processus de travail :

kill -USR1 5913

Il On peut voir que les numéros de processus des quatre processus de travail sont les mêmes qu'avant. C'est différent, ce qui signifie que le processus gestionnaire a surchargé le processus de travail

Actualisez la page dans le navigateur pour le voir

La mise à jour à chaud est réussie~

Voici un petit résumé :

La mise à jour à chaud du code met en fait à jour le contenu de la fonction de rappel "WorkerStart", ce qui signifie que notre code métier doit être placé dans la fonction de rappel "WorkerStart".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Que fait php principalement ?Article suivant:Que fait php principalement ?