Package Data | |
---|---|
Maintainer Username: | shakahl |
Maintainer Contact: | support@proemergotech.com (ProEmergotech Kft) |
Package Create Date: | 2017-06-15 |
Package Last Update: | 2017-09-13 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-12-15 15:01:56 |
Package Statistics | |
---|---|
Total Downloads: | 394 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 1 |
Total Watchers: | 3 |
Total Forks: | 0 |
Total Open Issues: | 0 |
It's very difficult to track a request accross the system when we are working with microservices. We came out a solution for that. We generate a unique version 4 uuid for every request and every service passes this id via request header to other services. We call this correlation ID.
composer require proemergotech/correlate-php-psr-7
To use this class as a middleware, you can use ->add( new ExampleMiddleware() );
function chain after the $app
, Route
, or group()
, which in the code below, any one of these, could represent $subject
.
$logger = $app['monolog']; // Must be \Monolog\Logger
// This is an optional callback function to set correlation id to a DIC.
$callback = function($correlationId) use ($app) {
$app->getContainer()['cid'] = $correlationId;
}
$subject->add(new \ProEmergotech\Correlate\Psr7\Psr7CorrelateMiddleware($logger, $callback));
Passing \Monolog\Logger
is optional.
This middleware automatically adds correlation id (coming from request header) to every log messages if you provided the optional \Monolog\Logger
instance to middleware's constructor.
You can access the correlation id IN A ROUTE CONTROLLER if you want to work with it.
$cid = $request->getAttribute(\ProEmergotech\Correlate\Correlate::getParamName());
See CONTRIBUTING.md
file.
This package developed by Soma Szélpál at Pro Emergotech Ltd..
This project is released under the MIT License.