我正在使用Laravel 4.1来编写应用程序。出于某种原因,我需要在包括生产在内的所有环境中禁用调试,但我需要为用户提供一种方法,以便能够在不需要编辑配置文件(app.php)的情况下启用调试模式(这意味着在运行时)
有没有办法这样做?我尝试在App ::之前更改调试设置,但这似乎不是正确的解决方案(异常处理程序已在此时注册)
更新
在最后一段我说过
异常处理程序已在此时注册
我认为此评论具有误导性。无论如何都应该注册例外处理程序 我需要解决的实际问题是:如何更改使用哪个显示器(plainDisplayer或debugDisplayer)?
根据Illuminate \ Exception \ Handler
中变量($ debug)的值,在运行时(无论何时发生异常)做出此决定调用app('exception')->setDebug(true)
使异常处理程序使用调试显示器,但我不确定这是否是正确的方法,特别是如果我要将此代码放在App ::之前的过滤器
答案 0 :(得分:3)
您可以使用Config
课程编辑配置设置。这将在任何环境中编辑当前请求的设置。
有了这个,您可以像这样设置或获取调试值:
Config::set('app.debug', true);
答案 1 :(得分:1)
为什么您要让用户看到您的内部应用调试,这听起来像是一场安全噩梦。用户可以强制错误并可能获取敏感信息,例如API密钥,数据库信息等等。
为什么不在您的应用中抛出/捕获错误,向用户显示一个漂亮的视图,并在远离用户视图的某个地方记录实际错误?