Estoy usando Symfony 1.4 con Doctrine.Habilitar el modo de depuración de forma interactiva en Symfony
Estoy tratando de encontrar una forma de habilitar el modo de depuración solo si el actual sfUser
tiene una credencial especial debugger
.
ya creado un filtro que desactiva la barra de Symfony depuración si el sfUser
no tiene esta credencial (la web_debug
se establece en true
en mi archivo settings.yml
):
class checkWebDebugFilter extends sfFilter
{
public function execute($filterChain)
{
if(!$this->getContext()->getUser()->hasCredential('debugger'))
{
sfConfig::set('sf_web_debug', false);
}
$filterChain->execute();
}
}
El código de mi archivo index.php
es:
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false));
sfContext::createInstance($configuration)->dispatch();
el problema es, como el modo de debug
está codificado a false
en mi index.php
, se trata de una también deshabilitado para depuradores; por lo tanto, la barra de depuración web no muestra las instrucciones de Doctrine ni las indicaciones de tiempo.
¿Hay alguna manera de habilitar el modo de depuración solo si el actual sfUser
tiene una credencial precisa?
He intentado añadir sfConfig::set('sf_debug', true);
a mi método checkWebDebugFilter::execute()
pero a medida que el filtro se ejecuta después de declaraciones Doctrina, no se registran.
También probé añadir session_start();
en mi archivo index.php
, a continuación, navegar a través de la variable $_SESSION
para comprobar si el usuario actual tiene la credencial debugger
, pero no funcionó (y que no estaba en el espíritu de Symfony tampoco).
Gracias de antemano por sus respuestas.
Creo que el mejor enfoque es establecer otro contexto cuando el usuario tiene la credencial. Estoy trabajando con una solución pero aún así no pude hacerlo – Pabloks