Normalmente lo mejor de tu panel de depuración web será el contenido que muestres y la forma en la que lo hagas. No obstante, existen algunos otros trucos interesantes.
7.4.1. Eliminar los paneles por defecto
Por defecto Symfony muestra varios paneles en la barra de depuración web. Si
no quieres mostrar alguno de ellos, debes hacer uso del evento
debug.web.load_panels
. Utiliza la misma función listener de las secciones
anteriores, elimina todo su contenido y añade la siguiente función removePanel()
.
El código del siguiente ejemplo hace que no se muestre el panel con la
información sobre la memoria:
public static function listenToLoadDebugWebPanelEvent(sfEvent $event)
{
$event->getSubject()->removePanel('memory');
}
7.4.2. Obteniendo parámetros de la petición en un panel
Una de las cosas que más utilizan los paneles de depuración web son los
parámetros de la petición. El siguiente código muestra cómo obtener el parámetro
event_id
para realizar una consulta a la base de datos y así poder mostrar
la información de un determinado objeto:
$parametros = $this->webDebug->getOption('request_parameters');
if (isset($parametros['event_id']))
{
$objeto = Doctrine::getTable('Event')->find($parametros['event_id']);
}
7.4.3. Ocultar un panel cuando no sea necesario
En determinadas ocasiones, los paneles no tienen ningún tipo de información
relevante que mostrar para la petición actual. En estos casos es mejor ocultar
directamente el panel. Supongamos que en el ejemplo anterior el panel no
muestra información útil a menos que exista un parámetro de la petición
llamado event_id
. Para ocultar ese panel cuando no exista ese parámetro,
simplemente no se devuelve ningún contenido en el método getTitle()
:
public function getTitle()
{
$parametros = $this->webDebug->getOption('request_parameters');
if (!isset($parametros['event_id']))
{
return;
}
return '<img src="/acWebDebugPlugin/images/documentation.png" alt="Documentation Shortcuts" height="16" width="16" /> docs';
}