samuelnogueira/zend-expressive-new-relic

Integrates New Relic with Zend Expressive

0.7.1 2024-04-03 20:45 UTC

README

Packagist PHP Version Support Latest Version on Packagist Software License

PSR-15 Middleware for New Relic instrumentation of Mezzio apps.

⚠️ Will not work correctly in async applications (ex. Swoole Coroutine) ⚠️

Requirements

  • PHP ^7.3 or ^8.0
  • A Mezzio application (formerly Zend Expressive)

Installation

This package is installable and autoloadable via Composer as samuelnogueira/zend-expressive-new-relic.

composer require samuelnogueira/zend-expressive-new-relic

Example

<?php // config/pipeline.php

use Samuelnogueira\ZendExpressiveNewRelic\Middleware\NewRelicMiddleware;
use Samuelnogueira\ZendExpressiveNewRelic\Middleware\NewRelicTransactionNameMiddleware;
use Mezzio\Router\Middleware\RouteMiddleware;
use Mezzio\Application;

return static function (Application $app): void {
    // (...)
    
    // Profiling middleware 2nd most outer middleware to profile everything
    if (extension_loaded('newrelic')) {
        $app->pipe(NewRelicMiddleware::class);
    }
    
    // (...)

    // Register the routing middleware in the middleware pipeline
    $app->pipe(RouteMiddleware::class);

    // Add more middleware here that needs to introspect the routing results; this
    // might include:
    //
    // - route-based authentication
    // - route-based validation
    // - etc.
    if (extension_loaded('newrelic')) {
        $app->pipe(NewRelicTransactionNameMiddleware::class);
    }
    
    // (...)
};

The MIT License (MIT). Please see LICENSE for more information.