phauthentic / correlation-id
关联ID和PSR7中间件注入
2.0.0
2024-03-27 23:51 UTC
Requires
- php: ^8.1
- psr/http-message: ^1.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- phpstan/phpstan: ^1.10.0
- phpunit/phpunit: ^10.0
- squizlabs/php_codesniffer: ^3.6
Suggests
- ramsey/uuid: If you want to use this UUID generator for the correlation ID. It will be automatically used instead of built in UUID4v1 generator if it is available.
README
关联ID的实现和框架无关的PSR 15-HTTP中间件。
关联ID,也称为传输ID,是一个附加到请求和消息上的唯一标识值,允许引用特定的交易或事件链。关联模式,依赖于关联ID的使用,是一个经过良好记录的企业集成模式。
文档
关联ID值对象
关联ID是一个单例类,它将在请求的当前生命周期中始终返回相同的ID。
调用CorrelationID::toString()
将返回一个字符串,并在整个应用程序的生命周期中返回相同的字符串。您可以通过调用CorrelationID::sameAs('your-string')
将字符串与关联ID进行比较。
默认情况下,它使用其内部实现来生成UUID v4作为关联ID的值。如果您正在使用ramsey/uuid,它将自动使用它。
PSR 15 HTTP中间件
中间件将自动将关联ID作为属性和头值放入您的请求对象中。默认情况下,两者都使用CorrelationID
名称。
$middleware = new CorrelationIDMiddleware( CorrelationID::toString() );
响应
由于没有标准说明在哪里进行此操作,只需将关联ID添加到您的响应中,使其最适合您的架构或框架。
$response->withHeader('CorrelationID', CorrelationId::toString());
对于Symfony,有一个可用的包,它将自动使关联ID在请求和响应对象中可用。
版权与许可
在MIT许可证下许可。
版权(c)Phauthentic / Florian Krämer