Symfony:在“prod”环境中显示开发工具栏

时间:2011-08-25 23:26:21

标签: debugging symfony1

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

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

我知道显示与否的Web调试工具栏不依赖于$ 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”设置。

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

¿我怎么能让工具栏工作?

2 个答案:

答案 0 :(得分:2)

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

只需这样评论:

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

答案 1 :(得分:1)

从内存中你必须更改前端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();