jblocks / t3guzzlelog
Guzzle 中间件处理器
dev-master / 1.0.x-dev
2020-06-08 13:44 UTC
Requires
- psr/http-message: ^1.0
- psr/log: ^1.0
- symfony/console: ^4.3
- typo3/cms-core: *
Requires (Dev)
- roave/security-advisories: dev-master
This package is auto-updated.
Last update: 2024-09-08 23:12:48 UTC
README
TYPO3 CMS 使用内部请求工厂来初始化 Guzzle 客户端类。Guzzle 有处理程序和中间件来定义自定义内容。为了记录你的 HTTP 请求或响应,你可以向 Guzzle 的 HandlerStack 注册一个额外的 Guzzle 中间件。
在自定义中间件中,你可以将请求记录到 TYPO3 核心日志文件中或创建一个自定义日志目标。(参见 TYPO3 日志框架)
安装
composer require jblocks/t3guzzlelog dev-master 通过 T3 后端中的扩展管理器激活扩展。
使用(命令行界面)
进入你的控制台,执行 ./bin/typo3 jblocks:t3guzzlelog 在 "ClientLogger" 类中添加一个 Xdebug 断点。
示例
将自定义中间件添加到默认的 Guzzle 处理程序堆栈中
$GLOBALS['TYPO3_CONF_VARS']['HTTP']['handler'][] =
(\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\ACME\Middleware\Guzzle\ACustomMiddleware::class))->handler();
$GLOBALS['TYPO3_CONF_VARS']['HTTP']['handler'][] =
(\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\ACME\Middleware\Guzzle\ASecondCustomMiddleware::class))->handler();
使用自定义类覆盖整个 Guzzle 中间件处理程序堆栈
# AdditionalConfiguration
GLOBALS['TYPO3_CONF_VARS']['HTTP']['handler'] = (\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\ACME\Middleware\Guzzle\HandlerStack::class))->handler();
# Class to overwrite the default Guzzle handlerstack
<?php
declare(strict_types=1);
namespace \ACME\Middleware\Guzzle;
class HandlerStack
{
public function handler(): HandlerStack
{
$stack = \GuzzleHttp\HandlerStack::create()();
$customHandler = (new MyCustomHandler())->foo();
$stack->push($customHandler);
return $stack;
}
}