Включить режим отладки в интерактивном режиме в symfony

Я использую symfony 1.4 с Doctrine.

Я пытаюсь найти способ включить режим отладки, только если текущий sfUser имеет специальные учетные данные отладчика .

Я уже создал фильтр, который деактивирует панель отладки 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();

Проблема в том, что режим отладки жестко запрограммирован на false в моем index.php , он также отключен для отладчиков; поэтому панель веб-отладки не показывает ни операторов Doctrine, ни индикацию времени.

Есть ли способ включить режим отладки, только если текущий sfUser имеет точные учетные данные?

Я попытался добавить sfConfig :: set ('sf_debug', true); в свой checkWebDebugFilter :: execute () , но поскольку фильтр выполняется после операторов Doctrine, они не записываются.

Я также пытался добавить session_start (); в свой ] index.php , затем просматривая переменную $ _ SESSION , чтобы проверить, есть ли у текущего пользователя учетные данные отладчика , но он не работал (и его не было в духа Symfony).

Заранее благодарим за ответы.

9
задан Phen 11 March 2011 в 17:42
поделиться