如何在Yii2中记录'已弃用警告”而不将其显示
P粉328911308
P粉328911308 2023-09-05 16:40:49
0
1
552
<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>
P粉328911308
P粉328911308

全部回复(1)
P粉546179835

试试这个:

'log' => [
    'traceLevel' => YII_DEBUG ? 3 : 0,
    'targets' => [
        [
            'class' => 'yii\log\FileTarget',
            'categories' => ['yii\base\*'],
            'levels' => ['error', 'warning','deprecated'],
            'logFile' => '@runtime/logs/php_warnings.log',
        ],
],

现在,PHP警告将被记录,而不会停止代码的执行。然而,为了实现完全“无声”记录PHP警告的方式,您需要调整PHP错误报告的设置。

打开您的PHP配置文件(php.ini)。

找到error_reporting指令并修改它以包括E_WARNING。例如:

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE | E_WARNING

通过包括E_WARNING,您确保记录PHP警告,但其他类型的错误不会记录。

保存PHP配置文件并重新启动您的Web服务器以使更改生效。 通过这些更改,Yii2将将PHP警告记录到指定的日志文件中,同时允许代码的执行继续进行。您可以查看日志文件(php_warnings.log)以收集和处理PHP警告。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板