proemergotech / correlate-php-psr-7
用于处理微服务中传入的关联ID头部的PSR-7中间件。
dev-master
2017-09-13 14:21 UTC
Requires
- proemergotech/correlate-php-core: dev-master
- proemergotech/correlate-php-monolog: dev-master
- psr/http-message: ^1.0
Requires (Dev)
- fzaninotto/faker: ~1.4
- mockery/mockery: ~0.9
- phpunit/phpunit: ^5.0
- squizlabs/php_codesniffer: ^2.8
This package is not auto-updated.
Last update: 2024-09-15 03:08:41 UTC
README
概述
当我们与微服务一起工作时,很难跟踪整个系统中的请求。我们针对这个问题提出了一种解决方案。我们为每个请求和每个服务生成一个唯一的版本4 uuid,并通过请求头部将此ID传递给其他服务。我们称此为关联ID。
包
- proemergotech/correlate-php-laravel
- Laravel和Lumen框架的中间件。
- proemergotech/correlate-php-psr-7
- 适用于任何PSR-7兼容框架(如Slim Framework)的中间件。
- proemergotech/correlate-php-monolog
- 用于关联中间件的Monolog处理器(您无需直接使用此处理器)。
- proemergotech/correlate-php-guzzle
- 添加关联ID到每个请求的Guzzle中间件。
- proemergotech/correlate-php-core
- 用于关联ID中间件的通用包,以在项目中提供一致的头部命名。
安装
- 通过composer安装
composer require proemergotech/correlate-php-psr-7
Slim 3框架的配置
要将此类用作中间件,您可以使用 ->add( new ExampleMiddleware() );
函数链在 $app
、Route
或 group()
之后,以下代码中的任何一个都可以代表 $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));
传递 \Monolog\Logger
是可选的。
用法
如果提供了可选的 \Monolog\Logger
实例到中间件的构造函数中,则此中间件会自动将关联ID(来自请求头部)添加到每个日志消息中。
如果您想使用它,可以在路由控制器中访问关联ID。
$cid = $request->getAttribute(\ProEmergotech\Correlate\Correlate::getParamName());
贡献
请参阅 CONTRIBUTING.md
文件。
致谢
此包由 Soma Szélpál 在 Pro Emergotech Ltd. 开发。
许可
本项目根据 MIT 许可证 发布。