如何在Yii2中記錄「已棄用警告」而不將其顯示
P粉328911308
2023-09-05 16:40:49
<p>為了從PHP 8.0切換到8.1,我遇到了很多PHP <em>Deprecated Warnings</em>的顯示。我可以簡單地關閉它們,但最好是為了PHP 8.2修復它們,所以我嘗試在我的應用程式在PHP 8.1中運行時獲取這些警告的靜默記錄器。我需要在Yii 2和PHP中做哪些設定?這可行嗎? </p>
<p>當我設定PHP為<code>error_reporting( E_ALL );</code>時,Yii 2應用程式會顯示錯誤。這不是「靜默」的方式。 </p>
<p>Yii2設定:檔案<em>main.php</em></p>
<pre class="brush:php;toolbar:false;">'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],</pre>
<p>我如何只記錄這些PHP警告而不停止程式碼運行? </p>
試試這個:
現在,PHP警告將被記錄,而不會停止程式碼的執行。然而,為了實現完全「無聲」記錄PHP警告的方式,您需要調整PHP錯誤報告的設定。
開啟您的PHP設定檔(php.ini)。
找到error_reporting指令並修改它以包括E_WARNING。例如:
透過包含E_WARNING,您確保記錄PHP警告,但其他類型的錯誤不會記錄。
儲存PHP設定檔並重新啟動您的網路伺服器以使變更生效。 透過這些更改,Yii2將將PHP警告記錄到指定的日誌檔案中,同時允許程式碼的執行繼續進行。您可以查看日誌檔案(php_warnings.log)以收集和處理PHP警告。