我有一个使用基本应用程序模板创建的yii2应用程序。在web.php中,我需要一个名为params.php的文件。为了管理这一点,我使用文件存在函数:
if(file_exists(__DIR__ . '/params.php')) { $params = require __DIR__ . '/params.php'; }
我想抛出一个异常以便显示yii error/debug页面。我试过:
if(file_exists(__DIR__ . '/params.php')) { $params = require __DIR__ . '/params.php'; } else { throw new Exception("Error", 1000); }
但是yii2错误处理程序没有捕捉到它,我不确定此时是否已经可用。有没有其他方法可以在这些页面上显示?
在应用程序初始化时注册了错误处理程序配置自 web.php 在应用程序初始化之前加载(因为需要先获取配置才能初始化应用程序),因此此时错误处理程序尚未就绪。
web.php
您可以使用事件推迟加载参数:
return [ 'on beforeRequest' => function () { if (file_exists(__DIR__ . '/params.php')) { Yii::$app->params = require __DIR__ . '/params.php'; } else { throw new Exception('Error', 1000); } } // rest of app config ];