Docs · PHP

Logs y alertas en PHP, en 5 minutos

Los errores de tu app de PHP con su stack, el hilo de cada petición y el aviso al teléfono cuando un pedido no termina. Un archivo, sin dependencias; los eventos salen cuando tu usuario ya tiene su respuesta.

  1. 1

    Instala

    // copia estiaje.php a tu proyecto (PHP 7.4 o superior, con curl)

    Es un archivo sin dependencias: cópialo de aquí.

  2. 2

    Tu llave

    Crea tu cuenta y pon la llave en ESTIAJE_TOKEN. O pídele a tu IA «conecta este repo a Estiaje» (el conector). Sin la llave no sale nada por la red: puedes instrumentar hoy.

  3. 3

    Tus errores y el hilo de cada petición

    ● Probado en CI
    // app/Http/Middleware/HiloEstiaje.php
    class HiloEstiaje
    {
        public function handle(Request $request, Closure $next)
        {
            \Estiaje::empezarHilo($request->header('traceparent'));
            return $next($request);
        }
    }
    
    // bootstrap/app.php (Laravel 11+)
    ->withMiddleware(fn ($middleware) => $middleware->append(\App\Http\Middleware\HiloEstiaje::class))
    ->withExceptions(function (Exceptions $exceptions) {
        $exceptions->report(fn (Throwable $e) => \Estiaje::error($e));
    })
    // en tu plugin o en functions.php
    require_once __DIR__ . '/estiaje.php';
    Estiaje::capturarErrores();
    add_action('init', fn () => Estiaje::empezarHilo($_SERVER['HTTP_TRACEPARENT'] ?? null));
    require_once __DIR__ . '/estiaje.php';
    Estiaje::capturarErrores();   // los que nadie atrapó
    Estiaje::empezarHilo($_SERVER['HTTP_TRACEPARENT'] ?? null);
  4. 4

    El proceso que debe terminar

    Estiaje::evento('pedido.pagado', ['order_id' => $pedido->id, 'monto' => $pedido->total]);
    // … cuando se surte …
    Estiaje::evento('pedido.surtido', ['order_id' => $pedido->id], 'outcome');
  5. 5

    El aviso

    En el panel, en Procesos: «todo pedido.pagado espera su pedido.surtido, por order_id, en 30 minutos». Si no llega, te avisa al teléfono, por correo o en Slack, con el dinero en riesgo.

Y si quieres más
  • Con php artisan config:cache, Laravel ya no carga el .env: pon ESTIAJE_TOKEN como variable del servidor.
  • Al llamar a otro servicio, pasa el hilo: Http::withHeaders(['traceparent' => \Estiaje::traceparent()]).
  • Los errores que atrapas: Estiaje::error($e), con su stack.

Todo lo demás está en la documentación completa.

Crear cuenta, 14 días de Pro Sin tarjeta. En pesos.