Tracy Flight Panel Extensions

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

  • 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 todos los payloads 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 tu aplicación!

Flight Data Flight Database Flight Request

Haz clic aquí para ver el código.

Installation

Ejecuta composer require flightphp/tracy-extensions --dev y estarás listo para empezar!

Configuration

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

<?php

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

// bootstrap code
require __DIR__ . '/vendor/autoload.php';

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

// si usas conexiones a la base de datos en tu app, hay un 
// wrapper 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 lo adjuntas 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 false o Tracy no podrá renderizar :(
    Flight::set('flight.content_length', false);
    new TracyExtensionLoader(Flight::app());
}

// more code

Flight::start();

Additional Configuration

Session Data

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


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

require 'vendor/autoload.php';

$app = Flight::app();

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

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

// routes and other things...

Flight::start();

Latte

Se requiere PHP 8.1+ para esta sección.

Si tienes Latte instalado en tu proyecto, Tracy tiene una integración nativa con Latte para analizar tus plantillas. Simplemente registra la extensión con tu instancia de Latte.


require 'vendor/autoload.php';

$app = Flight::app();

$app->map('render', function($template, $data, $block = null) {
    $latte = new Latte\Engine;

    // other configurations...

    // solo agrega la extensión si la Barra de Depuración de Tracy está habilitada
    if(Debugger::$showBar === true) {
        // aquí es donde agregas el Panel de Latte a Tracy
        $latte->addExtension(new Latte\Bridges\Tracy\TracyExtension);
    }

    $latte->render($template, $data, $block);
});