我设法以交互方式设置我的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'))我得到“真实”。
¿我怎么能让工具栏工作?
答案 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();