Laravel 4.1 - 在运行时启用调试


Laravel 4.1 - Enable debug at runtime

我正在使用Laravel 4.1来编写应用程序。出于某种原因,我需要在所有环境(包括生产环境(中禁用调试,但我需要为用户提供一种方法,以便能够在需要时(这意味着在运行时(启用调试模式而无需编辑配置文件(app.php(

有没有办法这样做?我尝试在App::before中更改调试设置,但这似乎不是正确的解决方案(此时已经注册了异常处理程序(

更新:
在最后一段中,我说

此时已注册异常处理程序

我认为这个评论具有误导性。无论如何都应注册异常处理程序。
我需要解决的实际问题是:如何更改要使用的显示器(普通Displayer或debugDisplayer(?

此决定是在运行时(每当实际发生异常时(根据 Illuminate''Exception''Handler 中的变量 ($debug( 的值做出

调用app('exception')->setDebug(true)会使异常处理程序使用调试显示器,但我不确定这是否是正确的方法,特别是如果我要将此代码放在 App::before 过滤器中

您可以使用

Config类编辑配置设置。这将编辑任何环境中当前请求的设置。有了这个,您可以像这样设置或获取调试值:

Config::set('app.debug', true);

为什么要让用户看到您的内部应用程序调试,这听起来像是一场安全噩梦。用户将能够强制错误并可能获得敏感信息,例如 API 密钥、数据库信息等。

为什么不在应用中抛出/捕获错误,向用户显示一个漂亮的视图,并将实际错误记录在远离用户视图的地方?