Debug
1Introducción
Temma ofrece un plugin dedicado a la depuración. Te permite recopilar datos sobre la petición que se está ejecutando, y acceder a ellos mediante una barra que se muestra en la parte inferior de las páginas (cuando se usa la vista Smarty).
La barra de depuración da acceso a los siguientes datos:
- Mensajes de log, para que no tengas que abrir el archivo log/temma.log.
- Variables de sesión, variables GET, variables POST, cookies y variables de plantilla.
- Constantes: contenido de la superglobal $_SERVER y variables de entorno.
- Configuración.
- Telemetría, es decir, la estructura en árbol de las llamadas a funciones y sus tiempos de ejecución.
2Configuración
2.1Activación
Para activar el plugin, basta con declararlo como pre-plugin en el archivo de configuración etc/temma.php:
<?php
return [
'plugins' => [
'_pre' => [
'\Temma\Plugins\Debug'
]
]
];
¡Atención!
Este plugin solo debe activarse en un puesto de desarrollo, y nunca en servidores de producción.
Por ello, te recomendamos encarecidamente añadirlo únicamente al archivo de configuración etc/temma.dev.php, en lugar de añadirlo al archivo principal etc/temma.php. Esto garantizará que el plugin solo se active en las máquinas donde la variable ENVIRONMENT tenga el valor dev (ver la documentación de configuración por plataforma).
Usa la clave _pre__prepend para que el plugin sea el primero de la lista.
Ejemplo de archivo etc/temma.dev.php:
<?php
return [
'plugins' => [
'_pre__prepend' => [
'\Temma\Plugins\Debug'
]
]
];
Para tu información, el plugin se registrará él mismo como post-plugin. Pero no debes añadirlo a la configuración como post-plugin, ya que de lo contrario se ejecutaría dos veces, provocando disfunciones.
2.2Desactivación de funciones
Configurar el pre-plugin activará todas las funciones de depuración.
Sin embargo, es posible activar o desactivar cada funcionalidad individualmente. Esto puede ser útil para ahorrar memoria
durante la ejecución de la petición. Para ello, hay que definir la configuración extendida x-debug:
<?php
return [
'x-debug' => [
// para desactivar la visualización de la barra de depuración,
// sin desactivar la recopilación de datos
'showBar' => false,
// para desactivar la recopilación y visualización de los mensajes de log
'showLogs' => false,
// para desactivar la visualización de las variables
'showVariables' => false,
// para desactivar la visualización de las constantes ($_SERVER y entorno)
'showConstants' => false,
// para desactivar la visualización de la configuración
'showConfig' => false,
// para desactivar la telemetría
'showTelemetry' => false,
]
];
3Telemetría
La telemetría te permite ver la estructura en árbol de las llamadas a funciones durante la ejecución de la petición, junto con el tiempo de ejecución de cada función.
Esta herramienta se basa en las funciones register_tick_function
y debug_backtrace de PHP. Lamentablemente, estas funciones
no pueden garantizar una recuperación 100% precisa.
Por lo tanto, la telemetría que ofrece Temma debe considerarse una herramienta indicativa, pero no exhaustiva.
Si necesitas una telemetría completa y precisa, puedes recurrir a herramientas como OpenTelemetry, Xdebug o Blackfire.