Herramientas de desarrollo

Registros

La clase Log permite controlar la ejecución del programa registrando información en ficheros de texto similares a los generados en /var/log en un sistema UNIX.

La función estática Log::log() escribe una cadena en el fichero log especificado acompañada de la fecha y hora.

El parámetro de configuración logPath establece la ruta donde los ficheros log se escriben. Por defecto logPath está establecido a /tmp/. Lo habitual es habilitar un directorio con los permisos adecuados.

Inspección de datos

En muchas ocasiones no se tiene acceso a un sistema completo de depuración, pero es necesario mostrar el contenido de variables durante alguna prueba y asegurar que se visualiza correctamente el contenido sin verse afectado por capas como CSS.

\zfx\Debug::show() muestra un dato de cualquier tipo de forma legible para un humano.

La clase Debug ofrece otras funciones estáticas para mostrar información de depuración:

  • \zfx\Debug::analyze() muestra un dato de cualquier tipo de forma legible para un humano, presentando información muy detallada. El uso típico de ambas funciones es visualizar el contenido de variables de forma destacada.
  • \zfx\Debug::devError() muestra un dato de cualquier tipo de forma legible para un humano, lo registra en el LOG error y finaliza la ejecución. Su uso está indicado para mostrar errores que no deberían ocurrir nunca (errores de desarrollo).

Niveles de depuración

Mediante el parámetro de configuración debugLevel se puede establecer de forma global el nivel de depuración numérico en el que se encuentra la aplicación.

Por convenio el nivel 0 significa la desactivación del sistema de depuración. El nivel N mostrará toda la información de depuración cuyo nivel M sea 1 <= M <= N.

Las funciones Debug::show() y Debug::analyze() son las que se usan para mostrar información de cierto nivel (pasándoselo como parámetro) en algún punto de la aplicación.

Si la opción debugLog es true, la información de depuración para los diferentes niveles se almacenará en el fichero log debugN siendo N el nivel de depuración.

Además, si la opción debugShow es true, la información de depuración para los diferentes niveles se mostrará en la salida de la aplicación.

Cronómetros

La clase Profiler proporciona un medio de cronometrar una parte de la aplicación y almacenar los resultados en un fichero LOG.

El uso típico de la clase es:

  1. Instanciar un objeto. En el constructor se le pasa el nombre del fichero log donde se almacenarán los resultados (por defecto es profile).
  2. Ejecutar start() justo antes de comenzar la parte de la aplicación que se va a cronometrar.
  3. Ejecutar stop() al final o en cada punto intermedio donde se desea almacenar la duración del intervalo que ha transcurrido desde que se hizo start().