Depuració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
Por defecto, las capacidades de depuración de Luthier CI están desactivadas. Para activarlas, ve a tu archivo application/config/hooks.php
y modifica el método Luthier\Hook::getHooks()
con lo siguiente:
<?php
# application/config/hooks.php
defined('BASEPATH') OR exit('No direct script access allowed');
// (...)
$hook = Luthier\Hook::getHooks(
[
'modules' => ['debug']
]
);
Mensajes de depuración
Para añadir mensajes de depuración usa el método Debug::log()
:
use Luthier\Debug;
Debug::log($variable, $type);
Donde $variable
es la variable (o expresión) 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');
}
}
El método Debug::log()
acepta un tercer argumento $dataCollector
, que 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 Debug::logFlash()
:
Debug::logFlash('Hey! this will be available in the next request','info');
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 recolectores de datos externos
Para añadir un recolector de datos a la instancia de PHP Debug Bar, usa el método estático Debug::addCollector()
:
use Luthier\Debug;
Debug::addCollector(new MyCollector());