我正在使用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 密钥、数据库信息等。
为什么不在应用中抛出/捕获错误,向用户显示一个漂亮的视图,并将实际错误记录在远离用户视图的地方?