Documentación

Depuración

Característica experimental
Hemos hecho un esfuerzo para que todo funcione correctamente, pero es posible que ocurran errores de renderizado y/o carga de los assets requeridos por esta característica. Por favor, notifícanos si has tenido algún incidente durante su uso.

Contenido

  1. Introducción
  2. Activación
  3. Mensajes de depuración
  4. Añadir tus propios recolectores de datos

Introducción

Puedes añadir PHP Debug Bar a tu aplicación gracias a la integración de Luthier CI con esta fantástica herramienta.

Activación

Para activar esta característica (que está desactivada por defecto) ve a tu archivo application/config/hooks.php y reemplaza:

<?php
# application/config/hooks.php

defined('BASEPATH') OR exit('No direct script access allowed');

// (...)

$hook = Luthier\Hook::getHooks();

Por:

<?php
# application/config/hooks.php

defined('BASEPATH') OR exit('No direct script access allowed');

// (...)

$hook = Luthier\Hook::getHooks(
    [
        'modules' => ['debug']
    ]
);

Deberás ver la barra de depuración en la parte inferior de la ventana:

Luthier CI PHP Debug Bar

Mensajes de depuración

Para añadir mensajes de depuración, usa el método estático log() de la clase Luthier\Debug:

# use Luthier\Debug;
Debug::log($variable, $type, $dataCollector);

Donde $variable es la variable a depurar, y $type es el tipo de mensaje, que puede ser 'info', 'warning' o 'error'.

Ejemplo:

<?php
# application/controllers/TestController.php

use Luthier\Debug;

defined('BASEPATH') OR exit('No direct script access allowed');

class TestController extends CI_Controller
{
    public function index()
    {
        Debug::log('Welcome to Luthier-CI ' . LUTHIER_CI_VERSION . '!');
        Debug::log('Hello world!','info');
        Debug::log('This is a warning, watch out!','warning');
        Debug::log('Oh snap! an error was occurred!','error');
        $this->load->view('welcome_message');
    }
}

Y el resultado:

Luthier CI PHP Debug Bar

Un argumento $dataCollector opcional es el nombre del recolector de datos donde se guardará el mensaje:

Debug::log('Custom data collector','error','my_custom_data_collector');

Si necesitas almacenar un mensaje para ser mostrado en la siguiente solicitud (por ejemplo, luego de enviar un formulario) utilza el método logFlash(), cuya sintaxis es idéntica al método estático log():

Debug::logFlash('Hey! this will be available in the next request','info');
Desactivado en entornos de producción
Si configuras el entorno de tu aplicación a production ésta característica se desactivará automáticamente, y cualquier código de depuración será ignorado
Requiere que existan datos en el buffer de salida
Luthier CI agrega el código de PHP Debug Bar en el buffer de salida ANTES de ser procesado y enviado al navegador por librería output de CodeIgniter. Por lo tanto, es necesario haber utilizado al menos una vez la función $this->load->view() o haber definido explícitamente un buffer de salida sobre el cual trabajar. Las sentencias echo NO producen ningún buffer de salida interno. Además, detener la ejecución del script con las funciones die o exit evitará que se muestre PHP Debug Bar.

Añadir tus propios recolectores de datos

Es posible añadir tus propios recolectores de datos y almacenar mensajes en ellos. Para añadir un recolector de datos a la instancia de PHP Debug Bar, usa el método estático addCollector():

# use Luthier\Debug;
Debug::addCollector(new MyCollector());

Autor: Anderson Salas. Última modificación: 30-07-2018

El texto, las ilustraciones y los ejemplos están disponibles bajo una licencia Creative Commons CC BY 4.0 (Más información)