如何动态启用Laravel调试栏?

时间:2018-12-25 19:04:19

标签: laravel debugging

如何在运行时启用Laravel调试栏?我想基于会话变量启用它。在我的AppServiceProvider中添加:

\Debugbar::enable()

但是它不起作用。如果我将env APP_DEBUG设置为true可以正常工作,那么调试栏就可以正常使用(我已经成功使用了一段时间了),但似乎无法在运行时打开/关闭它?我使用Laravel 5.4。我希望在生产环境中将其默认关闭,但可以选择以admin / dev身份打开它。

我确实看到了这个答案: Dynamically hide Laravel barryvdh debugbar

但是,我希望默认情况下禁用它,并在需要时启用,而不是相反。这是因为性能,根据调试栏的文档:

  

NB。启用后,将添加收集器(并可能产生额外的   开销),因此,如果要在生产环境中使用调试栏,请禁用   在配置中,仅在需要时启用。

谢谢!

1 个答案:

答案 0 :(得分:1)

我知道这不是您要寻找的答案,但是如果您尝试在生产环境中进行调试,那么您所做的工作会有些倒退。您应该在本地环境中进行调试,如果在生产环境中发现错误,请在本地进行测试重现,进行修复,然后将其合并到生产环境中。希望您不会遇到由于生产环境和开发环境之间的差异而导致的错误,但是如果您这样做,我会进行

对于尝试动态打开调试,我认为如果不对所有用户都打开调试功能,这是不可能实现的。调试器会在堆栈中尽早启动,因此必须先打开调试器,然后才能使用任何会话变量。我尝试仅为管理员用户打开调试,但是遇到了这个问题。