Uso

Una vez el plugin configurado y activado, ya no hay nada que llamar desde su código. El plugin instala automáticamente los handlers PHP globales y reporta los problemas por usted.

Qué se captura automáticamente

Cuando el plugin está activado con una URL de servidor y una clave de proyecto válidas, registra tres handlers PHP globales (a través del ErrorHandler del núcleo):

  • Excepciones no interceptadas: todo Throwable que llega al gestor de excepciones de PHP se reporta.
  • Errores PHP: las advertencias, notices y otros errores producidos durante la petición se encapsulan en excepciones y después se reportan. El handler respeta la supresión mediante @ y su nivel error_reporting, y deja que el gestor nativo de PHP se ejecute a continuación: el comportamiento existente permanece por tanto sin cambios.
  • Errores fatales: al final del script, el plugin inspecciona el último error y lo reporta si era fatal (E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR). Así es como un error fatal que termina la petición llega de todos modos a su panel.

Cada informe contiene la clase, el mensaje, el archivo y la línea de la excepción, así como la traza de pila completa por defecto (trace_limit vale 0); un valor positivo de trace_limit recorta la traza a ese número de frames. La release configurada se adjunta a cada evento.

El envío de informes está diseñado para no romper nunca su sitio: si el servidor es lento o inaccesible, el fallo se absorbe silenciosamente y la página sigue mostrándose.

Verificar el funcionamiento

Después de guardar sus ajustes, provoque un error inofensivo y confirme que aparece en su panel Quiet Guard para el proyecto. Una forma rápida consiste en añadir temporalmente un fragmento a un tema o a un pequeño plugin "must-use":

php
add_action('init', function () {
    throw new RuntimeException('Quiet Guard test exception');
});

Cargue una vez cualquier página del sitio y consulte después las Issues del proyecto en el panel, debería aparecer una RuntimeException con el mensaje "Quiet Guard test exception". Retire el fragmento después.

Si no llega nada, verifique de nuevo que:

  • Enabled vale 1, y que Server URL y Project key están definidos;
  • la Server URL es únicamente la URL base, sin ruta final;
  • el servidor es accesible por HTTPS desde el host WordPress;
  • el directorio del plugin se construyó con composer install, de modo que su directorio vendor/ existe (vea la Instalación).

Limpieza de datos sensibles

Antes de que un informe salga del sitio, sus datos de contexto pasan por el limpiador del núcleo, que enmascara los valores por clave. Toda clave cuyo nombre contenga uno de los términos siguientes (coincidencia por subcadena en el nombre de clave, sin distinción de mayúsculas y minúsculas, aplicada recursivamente a los arrays anidados) ve su valor reemplazado por [scrubbed]; una clave configurada password enmascara por tanto también user_password:

password, pwd, passphrase, token, secret, authorization,
cookie, referer, referrer, auth, api_key, nonce

Esto evita enviar las credenciales evidentes a su servidor. La lista de limpieza está definida en el adaptador WordPress y no puede modificarse desde la pantalla de ajustes en esta versión.

Una segunda pasada se añade encima, procedente del núcleo y sin ajuste propio: los valores con forma de dirección de correo, IBAN, número de tarjeta, número de seguridad social o teléfono franceses se enmascaran estén donde estén, incluido el texto de un mensaje de error, y la máscara nombra lo que ocultó ([redacted:email]).

Punto de ingesta

Como referencia, los informes se entregan mediante una petición HTTPS POST a:

{Server URL}/api/v1/ingest

autenticada con la clave de proyecto como token Bearer. Es la misma API de ingesta neutra respecto a la plataforma que usan los clientes Laravel y Symfony: un sitio WordPress aparece por tanto junto a ellos en el mismo panel.

Siguiente paso

Consulte la Actualización para saber cómo actualizar el plugin.

Está leyendo la documentación WordPress Plugin v1.0.