Ce qui suit est une introduction à thinkphp6 tirée de la colonne du didacticiel du framework thinkphp. Désactivez la gestion des erreurs en mode débogage ( APP_DEBUG=false), j'espère que cela sera utile aux amis dans le besoin !
Introduction
Bonjour à tous, en tant que pseudo-phper entré en contact avec PHP en 2009, a commencé à utiliser le framework TP en 12 ans, et a pas écrit de code complet après 16 ans d'ingénieur, quand j'ai écrit ce LOG, j'ai ressenti des émotions vraiment mitigées et j'ai soupiré, j'ai perdu beaucoup de temps et je n'ai apporté aucune contribution au progrès de PHP ou TP
Le noyau ; Le but de cet article n'est pas le problème lui-même (parce que ce problème n'est pas difficile à résoudre). J'aimerais partager mes réflexions personnelles sur la résolution de problèmes similaires. J'espère que cela pourra apporter un peu d'aide à ceux qui en ont besoin. Les corrections sont les bienvenues. si mes capacités sont limitées.
Description du problème
- L'avantage du mode débogage est le suivant : lorsque la journalisation est activée, toutes les informations d'erreur et les informations de débogage
- seront enregistrées en détail pour faciliter le débogage
;- enregistrera l'ensemble du processus d'exécution en détail ;
- Les modifications du modèle peuvent prendre effet immédiatement ;
- Un meilleur débogage et une meilleure recherche des erreurs grâce à la fonction Trace ;
- Informations détaillées sur les exceptions ; sera affiché lorsqu'une exception se produit ;
Modifier le fichier .ENV
// Définir sur activer le mode débogage
APP_DEBUG = FASLE
// Autres paramètres de variables d'environnement
// …
Idées de solutions
APP_DEBUG = falseENV = testing.....
#编辑php.ini文件,开启log_errors = On error_log = /data/logs/php7/php_error.log
#php error log 错误如下,路径需要换成您自己的,非必要信息略...PHP Fatal error: Uncaught $YOUR_REAL_PATH\think\exception\ErrorException: Invalid argument supplied for foreach() in vendor/topthink/think-annotation/src/CachedReader.php:99 Stack trace:#0 /$YOUR_REAL_PATH/vendor/topthink/think-annotation/src/CachedReader.php(99): think\initializer\Error->appError(2, 'Invalid argumen...', '...', 99, Array)
既然已经找到错误信息了,那么问题就比较好处理了: option1 如果着急上线,可以先开启调试模式 option2 如果项目没用用注解可以关掉; option3 如果1和2都不行,那么久仔细研究下CachedReader.php,看看bug出在哪
Solution
APP_DEBUG = trueENV = live
e3fa5384b17edd13525c70273ec9212e [ 'enable' => false, 'namespaces' => [], ], 'route' => [ 'enable' => false, 'controllers' => [], ], 'ignore' => [],];
# 第8行引入错误 use think\Cache; 更改为========================> use think\cache\Driver; # 第143行 fetchFromCache 方法错误 private function fetchFromCache($cacheKey, ReflectionClass $class) { if (($data = $this->cache->get($cacheKey)) !== false) { if (!$this->debug || $this->isCacheFresh($cacheKey, $class)) { return $data; } } return false; }更改为========================> private function fetchFromCache($cacheKey, ReflectionClass $class) { if ((!$this->debug || $this->isCacheFresh($cacheKey, $class)) && $this->cache->has($cacheKey)) { return $this->cache->get($cacheKey, false); } return false; }
#解决当前问题的方式命令行更新如下,也可以用IDE更新哦$composer update topthink/think-annotation
Résumé du problème
1. Aucune autorisation de connexion au serveur ?
Au niveau du code, directement ini_set("display_errors",1)
2. Que dois-je faire s'il y a plusieurs machines d'équilibrage de charge ?
Vous pouvez lier des hôtes pour localiser l'erreur sur une machine
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!