Laravel 4.1 - 在运行时启用调试

时间:2014-12-16 15:42:45

标签: php laravel-4

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

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

更新
在最后一段我说过

  

异常处理程序已在此时注册

我认为此评论具有误导性。无论如何都应该注册例外处理程序 我需要解决的实际问题是:如何更改使用哪个显示器(plainDisplayer或debugDisplayer)?

根据Illuminate \ Exception \ Handler

中变量($ debug)的值,在运行时(无论何时发生异常)做出此决定

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

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