sbsedv/request-id-bundle

A Symfony bundle that adds a unique Request-ID.

Installs: 255

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 0

Forks: 0

Open Issues: 0

Type:symfony-bundle

v1.7.0 2023-12-01 15:46 UTC

This package is auto-updated.

Last update: 2024-04-30 01:00:03 UTC


README

PHPStan PHPCS-Fixer

sbsedv/request-id-bundle

A Symfony bundle that adds a unique Request-ID.

In the configuration examples shown below, the default values are used.

The generic configuration is as follows:

# config/packages/sbsedv_request_id.yaml

sbsedv_request_id:
    generator: "SBSEDV\Bundle\RequestIdBundle\Generator\UuidRequestIdGenerator"
    # generator: "SBSEDV\Bundle\RequestIdBundle\Generator\RequestIdGenerator"
    # generator: 'your_custom_service_id' (must implement RequestIdGeneratorInterface)

    outgoing_http_header: "x-request-id" # http header that will be added
    # outgoing_http_header: false # disables the header creation

    incoming_http_header: false # disabled
    # incoming_http_header: "x-request-id" # request header that contains the Request-ID to use

The incoming http-header is only used when the SBSEDV\Bundle\RequestIdBundle\TrustStrategy\TrustStrategyInterface service trusts the incoming request.
By default the PrivateIpTrustStrategy is registered.

Twig Integration

If your application has the symfony/twig-bundle installed, the request_id twig function is registered.

{# templates/example.html.twig #}

<p>Request-ID: {{ request_id() }}</p>

You can customize the registered twig function name via:

# config/packages/sbsedv_request_id.yaml

sbsedv_request_id:
    twig_function_name: "request_id"

Error Renderer

By default this bundle decorates the error_renderer service and inserts the current request id before the </body> tag.

# config/packages/sbsedv_request_id.yaml

sbsedv_request_id:
    error_renderer_decorator: false # enabled by default

Monolog Integration

If your application has the symfony/monolog-bundle installed, a log processor is registered that adds the request id to each record.

# config/packages/sbsedv_request_id.yaml

sbsedv_request_id:
    monolog_processor:
        key: "request_id" # Key to which the request id will be set
    # monolog_processor: false # disables the processor