jblocks/t3guzzlelog

Guzzle 中间件处理器

安装: 14

依赖: 0

建议者: 0

安全: 0

星星: 0

关注者: 2

分支: 1

开放问题: 0

类型:typo3-cms-extension

dev-master / 1.0.x-dev 2020-06-08 13:44 UTC

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;
    }
}