以下は、thinkphp フレームワーク チュートリアルのコラムで、その方法を紹介します。 thinkphp6 のデバッグ モード (APP_DEBUG=false) エラー処理をオフにします。困っている友人の役に立てば幸いです。
はじめに
皆さん、こんにちは。2009 年に PHP に出会い、12 年間で TP フレームワークを使い始めた疑似 PHP です。 16 年ぶりに完全なコードを書いたことはありません。エンジニア、このログを書いたとき、本当に複雑な感情とため息が出ました。多くの時間を無駄にし、PHP や TP の進歩に何の貢献もできませんでした。
コアこの記事の目的は問題そのものではありません (この問題は解決が難しいものではないので) 同様の問題に対処する際の個人的な考えを共有したいと思います。必要な方に少しでも役立つことを願っています。修正は歓迎です。私の能力に限界があるなら。
問題の説明
デバッグ問題を閉じる:
- tp6 で .env 構成モードが追加され、公式環境で問題が発生する;
- 開発およびテスト環境 APP_DEBUG = TRUE、すべてが正常です;
- 正式リリース後、500 エラーを報告するには APP_DEBUG = FALSE を設定します;
利点デバッグ モードの利点:
- デバッグ モードの利点は、ログをオンにすると、デバッグを容易にするために、エラー情報とデバッグ
- 情報が詳細に記録されることです。
- 実行プロセス全体を詳細に記録します;
- テンプレートの変更はすぐに有効になります;
- トレース機能を使用して、デバッグとエラーの検出を改善します;
- 例外が発生すると、詳細な例外情報が表示されます;
メソッドを開くおよび閉じる
.ENV ファイルを編集する
//デバッグモードを有効にするように設定します
APP_DEBUG = FASLE
//その他の環境変数設定
// …
解決策のアイデア
- step1 問題を再現する、最短の答え方法、テスト環境でデバッグ モードをオフにする;
APP_DEBUG = falseENV = testing.....
- step2 ログをオンにする、オフにするデバッグ エラーは出力されないため、php ファイルのエラー記録をオンにする必要があります。 #
#编辑php.ini文件,开启log_errors = On error_log = /data/logs/php7/php_error.log
- step3 問題を確認し、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)
- step4 問題を解決すると、実際には問題が半分解決されたことがわかります。
既然已经找到错误信息了,那么问题就比较好处理了: option1 如果着急上线,可以先开启调试模式 option2 如果项目没用用注解可以关掉; option3 如果1和2都不行,那么久仔细研究下CachedReader.php,看看bug出在哪
解決策
オプション 1 緊急ソリューション、オンライン環境でデバッグ モードを有効にするAPP_DEBUG = trueENV = live
オプション 2 短期的なソリューション、config/annotation.php アノテーション機能をオフにする<?phpreturn [
'inject' => [
'enable' => false,
'namespaces' => [],
],
'route' => [
'enable' => false,
'controllers' => [],
],
'ignore' => [],];
オプション 3 長期的なソリューション、CachedReader.php コードを確認してください、エラーが報告される理由は何ですか?# 第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;
}
オプション 4 Wanmei ソリューション、誰もがプラグインの更新とバグに習慣的に注意を払うことができることを願っています #解决当前问题的方式命令行更新如下,也可以用IDE更新哦$composer update topthink/think-annotation
問題概要
1. サーバーへのログイン権限がありませんか? コード レベルで直接 ini_set("display_errors",1)
2. 複数の負荷分散マシンがある場合はどうすればよいですか?
ホストをバインドしてマシンのエラーを特定できます
以上がthinkphp6 がデバッグ モードをオフにする (APP_DEBUG=false) エラー報告の問題の処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









