thinkphp 6デバッグモード(APP_DEBUG=false)エラー処理をオフにする
11566 ワード
TP 6デバッグエラー処理の考え方を閉じる引用 問題説明 デバッグの問題を閉じる: デバッグモードのメリット: 開閉方法 解決構想 ソリューション 方案1応急解決、オンライン環境オープンデバッグモード 案2短期解決、config/annotation.phpで注釈機能を閉じる 案3長期解決、CachedReaderを参照phpコードはなぜ間違っていますか? 方案4玩美解决,希望大家能习惯性关注卡片的更新和BUG 問題まとめ 引用する
皆さん、こんにちは、09年にPHPに接触し、12年にTPフレームワークを起用し、16年後にコードを完全に書いたことがない偽エンジニアとして、このLOGを書いたとき、心の中は本当に五味が雑然としていて、ため息をついていて、自分が良い时間を浪費したと同時にPHPやTPの進歩に少しも貢献していませんでした.本文の核心目的は問題そのものではなく(この問題は解決しにくいから)個人が類似の問題を処理する考え方を分かち合い、必要な人に少しの助けを提供することを望んで、能力は限られているので指摘を歓迎します.
問題の説明
デバッグの問題を閉じるには、次の手順に従います. tp 6が増加する.Env構成モード、パブリッシュ正式な環境問題が発生しました; 開発及びテスト環境APP_DEBUG=TRUEはすべて正常です; 公式リリース後にAPPを設定_DEBUG=FALSE 500エラー;
デバッグモードのメリット:デバッグモードの利点は、ログ記録、エラー情報、デバッグ をオンにすることです.息はすべて詳しく記録して、デバッグしやすいです; は、実行プロセス全体を詳細に記録する. テンプレートの変更は即時に有効になります. トレース機能によってより良いデバッグとエラーを発見する. 異常が発生した場合、詳細な異常情報が表示されます.
オープンクローズ方法
編集ENVファイル
//オープンデバッグモードAPPの設定DEBUG=FASLE//その他の環境変数設定//...
解決策 step 1問題を再現し、最も簡単な答えで、テスト環境でデバッグモードをオフにします. step 2オープンログ、クローズデバッグエラーは印刷しないのでphpファイルエラーレコード を開く必要があります. step 3質問を表示し、php_を表示します.error.log、問題の具体的な説明を見て step 4は問題を解決して、問題が実は問題がすでに半分解決したことを発見しました;
ソリューション
方案1応急解決、オンライン環境起動調整モード
方案2短期解決、config/annotation.phpで注記機能を閉じる
シナリオ3長期的な解決、CachedReaderを参照phpコードはなぜ間違っていますか?
方案4玩美解决,希望大家能习惯性关注卡片的更新和BUG
問題の要約サーバーのログイン権限がありませんか?コードレベル直接ini_set(“display_errors”,1) 負荷均衡複数台はどうすればいいですか?hosts方式をバインドし、エラーを1台のマシン に位置決めすることができる.
皆さん、こんにちは、09年にPHPに接触し、12年にTPフレームワークを起用し、16年後にコードを完全に書いたことがない偽エンジニアとして、このLOGを書いたとき、心の中は本当に五味が雑然としていて、ため息をついていて、自分が良い时間を浪費したと同時にPHPやTPの進歩に少しも貢献していませんでした.本文の核心目的は問題そのものではなく(この問題は解決しにくいから)個人が類似の問題を処理する考え方を分かち合い、必要な人に少しの助けを提供することを望んで、能力は限られているので指摘を歓迎します.
問題の説明
デバッグの問題を閉じるには、次の手順に従います.
デバッグモードのメリット:
オープンクローズ方法
編集ENVファイル
//オープンデバッグモードAPPの設定DEBUG=FASLE//その他の環境変数設定//...
解決策
APP_DEBUG = false
ENV = 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
ソリューション
方案1応急解決、オンライン環境起動調整モード
APP_DEBUG = true
ENV = live
方案2短期解決、config/annotation.phpで注記機能を閉じる
return [
'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玩美解决,希望大家能习惯性关注卡片的更新和BUG
# , IDE
$composer update topthink/think-annotation
問題の要約