xepozz / request-id
此包的最新版本(1.0.0)没有可用的许可证信息。
跟踪 Yii 3 请求和响应 ID
1.0.0
2023-04-08 12:04 UTC
Requires
- php: ^8.1
- psr/http-server-middleware: ^1.0
- ramsey/uuid: ^4.7.3
Requires (Dev)
- nyholm/psr7: ^1.5.1
- phpunit/phpunit: 10.0.17
- vimeo/psalm: ^5.8
- yiisoft/yii-debug: dev-split-debug
This package is auto-updated.
Last update: 2024-08-24 08:29:23 UTC
README
这是一个用于生成唯一请求和响应 ID 的简单库,用于跟踪目的。
安装
composer require xepozz/request-id
用法
将中间件添加到您的应用程序配置中,例如 config/web/params.php
use Xepozz\RequestID\SetRequestIDMiddleware; return [ 'middlewares' => [ SetRequestIDMiddleware::class, // ErrorCatcher::class, // SentryMiddleware::class, // Router::class, // ... ], ];
注意:如果您想查看错误页面中的响应 ID,必须在
ErrorCatcher
中间件之前添加中间件。
请求 ID 提供器
您可以使用 Xepozz\RequestID\RequestIDProviderInterface
接口获取请求 ID
use Xepozz\RequestID\RequestIDProviderInterface; class HttpClient { public function __construct( private RequestIDProviderInterface $requestIDProvider, ) { } public function sendRequest(): void { $requestID = $this->requestIDProvider->get(); // ... } }
配置
使用传入请求 ID
如果您不想使用传入请求的请求 ID,您可以通过在应用程序配置中指定 useIncomingRequestID
参数来禁用此行为
return [ 'xepozz/request-id' => [ 'useIncomingRequestID' => false, ], ];
注意:默认情况下,库始终使用标题从传入请求中获取请求 ID。
请求 ID 标题
默认情况下,库使用 X-Request-ID
标题存储请求 ID。相同的标题名称用于设置响应 ID。您可以通过在应用程序配置中指定 headerName
参数来更改标题名称
return [ 'xepozz/request-id' => [ 'headerName' => 'X-Request-ID', ], ];
响应 ID 标题
默认情况下,库在请求结束时将标题设置为响应。您可以通过在应用程序配置中指定 setResponseHeader
参数来禁用此行为
return [ 'xepozz/request-id' => [ 'setResponseHeader' => false, ], ];
策略
默认情况下,库使用 Xepozz\RequestID\UuidGenerator
生成器。您可以通过在容器中指定 Xepozz\RequestID\RequestIDGeneratorInterface
接口的实现来更改策略
use Xepozz\RequestID\RequestIDGeneratorInterface; use Xepozz\RequestID\UuidGenerator; return [ RequestIDGeneratorInterface::class => UuidGenerator::class, ];
寻找更多模块?
- Unique ID - 允许您跟踪应用程序中的唯一用户。
- AB - 一个简单的库,允许您根据一组规则启用 A/B 测试。
- Feature Flag - 一个简单的库,允许您根据一组规则启用/禁用功能。
- Shortcut - 为 Yii 3 应用程序的快速开发提供一系列辅助函数。