【问题标题】:Symfony: Showing the dev toolbar in "prod" environmentSymfony:在“prod”环境中显示开发工具栏
【发布时间】:2011-12-30 00:08:13
【问题描述】:

我设法为用户会话以交互方式设置我的 symfony 应用程序的调试模式 On 和 Off,如下所示:

$configuration = ProjectConfiguration::getApplicationConfiguration($app,
                                                           $env, $debugging);

我知道 Web Debug Toolbar 是否显示不取决于 $debugging 的值,而是取决于当前环境的配置。

到目前为止,工具栏出现的唯一方式是 $env = 'dev'。

我也想在访问“prod”环境时激活它。

我有这个应用设置:

prod:
  .settings:
    no_script_name:         true
    logging_enabled:        false
    web_debug:              true
    error_reporting:        <?php echo (E_ALL | E_STRICT)."\n" ?>

dev:
  .settings:
    error_reporting:        <?php echo (E_ALL | E_STRICT)."\n" ?>
    web_debug:              true
    cache:                  false
    no_script_name:         false
    etag:                   false

工具栏未显示,显然忽略了“web_debug”设置。

如果我 echo(sfConfig::get('sf_web_debug')) 我得到“真”。

¿我怎样才能使工具栏正常工作?

【问题讨论】:

    标签: debugging symfony1


    【解决方案1】:

    您还需要更改 factory.yml 。默认情况下,“prod”环境中没有 Logger。

    只需像这样注释掉:

    prod:
    #  logger:
    #    class:   sfNoLogger
    #    param:
    #      level:   err
    #      loggers: ~
    

    【讨论】:

      【解决方案2】:

      您必须从内存中更改前端 php 文件中的值。比较 web 目录中的 frontend.php 和 frontend_dev.php 文件。寻找一个为真另一个为假的区别(我认为这是最后一个参数)。

      这些行是:

      require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
      $configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false));
      sfContext::createInstance($configuration)->dispatch();
      

      改为:

      require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
      $configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', true));
      sfContext::createInstance($configuration)->dispatch();
      

      【讨论】:

      • 这就是我正在做的,但是,虽然第三个参数表示“调试”,但它的功能与是否显示调试工具栏几乎没有关系。第二个参数是一个标签,指向一整套配置选项。当它设置为“prod”时,它指向的环境默认不包含web_debug: true 定义,而“dev”环境包含。文档说在“prod”环境中定义 web_debug: true 就足够了,但它在我的应用程序中不起作用。
      • 嗯,我确信您需要在配置中启用调试和调试栏以及在 frontend.php 文件中启用调试。猜猜不是……
      • 根据文档,这是答案,但它似乎不起作用。
      • 有可能它正在工作,但样式被覆盖或栏被隐藏在某处。检查您的页面源以查看它是否被添加(我假设您已经检查过但没有)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 2016-12-25
      • 2016-07-30
      • 2017-11-20
      • 2018-09-23
      • 1970-01-01
      相关资源
      最近更新 更多