我使用symfony 1.4与Doctrine。在symfony中以交互方式启用调试模式
我试图找到一种方法来启用调试模式只有当前sfUser
有一个特殊的debugger
凭据。
我已经创建了一个过滤器,停用symfony的调试工具栏,如果sfUser
还没有这个证书(该web_debug
设置为true
在我settings.yml
文件):
class checkWebDebugFilter extends sfFilter
{
public function execute($filterChain)
{
if(!$this->getContext()->getUser()->hasCredential('debugger'))
{
sfConfig::set('sf_web_debug', false);
}
$filterChain->execute();
}
}
我index.php
文件的代码是:
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false));
sfContext::createInstance($configuration)->dispatch();
的问题是,随着debug
模式在我index.php
硬编码为false
,它是一个也对调试器禁用;因此Web调试栏不显示Doctrine语句或时序指示。
只有当前sfUser
有一个精确的凭证时,才有办法启用调试模式吗?
我尝试添加sfConfig::set('sf_debug', true);
我checkWebDebugFilter::execute()
方法,但作为过滤器后主义语句执行,他们不会被记录。
我也试图在我的index.php
文件中添加session_start();
,然后通过$_SESSION
变量浏览检查当前用户是否具有debugger
证书,但它没有工作(和它在symfony中的精神是不是要么)。
在此先感谢您的答案。
我认为最好的方法是在用户拥有证书时设置另一个上下文。我正在使用一种解决方案,但尚未使其工作 – Pabloks 2011-03-12 21:20:46