Créer un gestionnaire d'erreurs
Implémenter l'interface ErrorHandlerInterface
namespace App; use Core\AbstractInterface\ErrorHandlerInterface; class Test implements ErrorHandlerInterface { function handler( $msg,$file = null,$line = null,$errorCode = null,$trace ) { echo "文件{$file}的第{$line}行,错误:{$msg}"; } function display($msg,$file = null,$line = null,$errorCode = null,$trace ) { } function log( $msg,$file = null,$line = null,$errorCode = null,$trace ) { } }
Lorsque DEBUG.ENABLE est activé, personnalisez l'erreur Le traitement est efficace.
Injection IOC
Injection d'événement après l'initialisation du framework :
Di::getInstance()->set(SysConst::ERROR_HANDLER,Test::class);
Notez que s'il y a une erreur logique dans le prochain événement beforeWorker, il will En conséquence, la classe de gestion des erreurs est instanciée immédiatement avant le démarrage du service. Si une connexion telle que redis est utilisée dans la fonction de traitement, cela entraînera un problème de partage de connexion multi-processus. Pour éviter cette situation, le processus de tâche. peut être utilisé pour convertir.
Par exemple, lorsqu'un message d'erreur se produit, il est transmis au processus de tâche et une connexion Redis singleton est obtenue dans le processus de tâche pour écrire le message d'erreur.
Apprentissage recommandé : tutoriel vidéo swoole
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!