Yii2 - 捕获需要错误
Yii2 - Catch require error
我有一个使用基本应用程序模板创建的 Yii2 应用程序。在 web.php 中,我需要一个名为 params.php 的文件。为了管理它,我使用文件存在函数:
if(file_exists(__DIR__ . '/params.php')) {
$params = require __DIR__ . '/params.php';
}
我想抛出异常以便显示 Yii 错误/调试页面。我试过:
if(file_exists(__DIR__ . '/params.php')) {
$params = require __DIR__ . '/params.php';
} else {
throw new Exception("Error", 1000);
}
但是Yii2 Error handler并没有捕捉到它,我不确定此时是否已经可用。有没有其他方法可以在这些页面上显示它?
错误处理程序已在应用程序初始化时注册。来自 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
];
我有一个使用基本应用程序模板创建的 Yii2 应用程序。在 web.php 中,我需要一个名为 params.php 的文件。为了管理它,我使用文件存在函数:
if(file_exists(__DIR__ . '/params.php')) {
$params = require __DIR__ . '/params.php';
}
我想抛出异常以便显示 Yii 错误/调试页面。我试过:
if(file_exists(__DIR__ . '/params.php')) {
$params = require __DIR__ . '/params.php';
} else {
throw new Exception("Error", 1000);
}
但是Yii2 Error handler并没有捕捉到它,我不确定此时是否已经可用。有没有其他方法可以在这些页面上显示它?
错误处理程序已在应用程序初始化时注册。来自 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
];