Tracy Flight Panel Extensions

Este es un conjunto de extensiones para hacer que trabajar con Flight sea un poco más enriquecedor.

  • Flight - Analiza todas las variables de Flight.
  • Database - Analiza todas las consultas que se han ejecutado en la página (si inicias correctamente la conexión a la base de datos)
  • Request - Analiza todas las variables $_SERVER y examina todas las cargas útiles globales ($_GET, $_POST, $_FILES)
  • Session - Analiza todas las variables $_SESSION si las sesiones están activas.

Este es el Panel

Flight Bar

¡Y cada panel muestra información muy útil sobre su aplicación!

Flight Data Flight Database Flight Request

Haz clic aquí para ver el código.

Instalación

Ejecuta composer require flightphp/tracy-extensions --dev y ¡estarás en camino!

Configuración

Hay muy poca configuración que necesitas hacer para empezar. Necesitarás iniciar el depurador Tracy antes de usar esto https://tracy.nette.org/en/guide:

<?php

use Tracy\Debugger;
use flight\debug\tracy\TracyExtensionLoader;

// código de arranque
require __DIR__ . '/vendor/autoload.php';

Debugger::enable();
// Puede que necesites especificar tu entorno con Debugger::enable(Debugger::DEVELOPMENT)

// si usas conexiones a la base de datos en tu aplicación, hay un 
// envoltorio PDO requerido para usar SOLO EN DESARROLLO (¡no en producción, por favor!)
// Tiene los mismos parámetros que una conexión PDO regular
$pdo = new PdoQueryCapture('sqlite:test.db', 'user', 'pass');
// o si conectas esto al framework Flight
Flight::register('db', PdoQueryCapture::class, ['sqlite:test.db', 'user', 'pass']);
// ahora, cada vez que hagas una consulta, capturará el tiempo, la consulta y los parámetros

// Esto conecta los puntos
if(Debugger::$showBar === true) {
    // Esto necesita ser falso o Tracy no puede renderizar realmente :(
    Flight::set('flight.content_length', false);
    new TracyExtensionLoader(Flight::app());
}

// más código

Flight::start();

Configuración Adicional

Datos de Sesión

Si tienes un controlador de sesión personalizado (como ghostff/session), puedes pasar cualquier array de datos de sesión a Tracy y lo mostrará automáticamente. Lo pasas con la clave session_data en el segundo parámetro del constructor de TracyExtensionLoader.


use Ghostff\Session\Session;
// o usa flight\Session;

require 'vendor/autoload.php';

$app = Flight::app();

$app->register('session', Session::class);

if(Debugger::$showBar === true) {
    // Esto necesita ser falso o Tracy no puede renderizar realmente :(
    Flight::set('flight.content_length', false);
    new TracyExtensionLoader(Flight::app(), [ 'session_data' => Flight::session()->getAll() ]);
}

// rutas y otras cosas...

Flight::start();

Latte

Si tienes Latte instalado en tu proyecto, puedes usar el panel de Latte para analizar tus plantillas. Puedes pasar la instancia de Latte al constructor de TracyExtensionLoader con la clave latte en el segundo parámetro.


use Latte\Engine;

require 'vendor/autoload.php';

$app = Flight::app();

$app->register('latte', Engine::class, [], function($latte) {
    $latte->setTempDirectory(__DIR__ . '/temp');

    // aquí es donde agregas el Panel de Latte a Tracy
    $latte->addExtension(new Latte\Bridges\Tracy\TracyExtension);
});

if(Debugger::$showBar === true) {
    // Esto necesita ser falso o Tracy no puede renderizar realmente :(
    Flight::set('flight.content_length', false);
    new TracyExtensionLoader(Flight::app());
}