miquido/request-data-collector-guzzle

Library used to extend the Request Data Collector by collecting Guzzle requests.

v2.3.0 2021-04-14 12:27 UTC

This package is auto-updated.

Last update: 2024-12-18 17:56:00 UTC


README

This package is an extension to the Request Data Collector. Allows collecting Guzzle requests.

GitHub license Build

Set up

GuzzleCollector

This collector is being used to collect data about performed Guzzle requests.

'guzzle' => [
	'driver' => \Miquido\RequestDataCollector\Collectors\GuzzleCollector\GuzzleCollector::class,

	'decorate' => [
		'with' => \Miquido\RequestDataCollector\Collectors\GuzzleCollector\Guzzle6ClientDecorator::class,

		'abstracts' => [
			abstract => [
				'type'    => \Miquido\RequestDataCollector\Collectors\GuzzleCollector\GuzzleCollector::TYPE_*,
				'create'  => boolean,
				'collect' => [
					\Miquido\RequestDataCollector\Collectors\GuzzleCollector\GuzzleCollector::INFO_BY,
					\Miquido\RequestDataCollector\Collectors\GuzzleCollector\GuzzleCollector::INFO_VIA,
					\Miquido\RequestDataCollector\Collectors\GuzzleCollector\GuzzleCollector::INFO_METHOD,
					\Miquido\RequestDataCollector\Collectors\GuzzleCollector\GuzzleCollector::INFO_URI,
					\Miquido\RequestDataCollector\Collectors\GuzzleCollector\GuzzleCollector::INFO_HEADERS,
					\Miquido\RequestDataCollector\Collectors\GuzzleCollector\GuzzleCollector::INFO_OPTIONS,
				],
			],
			
			// ...
		],
	],
],

decorate.with

Defines Guzzle Client decorator class responsible for collecting requests.

decorate.abstracts

Defines a list of Guzzle Clients registered in the container. All abstracts will be decorated with class defined in decorate.with.

Every abstract is being defined in following way:

abstract => [
	'type'   => \Miquido\RequestDataCollector\Collectors\GuzzleCollector\GuzzleCollector::TYPE_*,
	'create' => boolean,
	'collect' => [
		// \Miquido\RequestDataCollector\Collectors\GuzzleCollector\GuzzleCollector::INFO_*
	],
],

abstract is the name under which instance has been registered in the container (e.g. my-guzzle-client or \GuzzleHttp\ClientInterface::class).

type defines the type of abstract (see \Miquido\RequestDataCollector\Collectors\GuzzleCollector\GuzzleCollector::TYPE_* constants).

collect defines list of request's information that should be logged (see \Miquido\RequestDataCollector\Collectors\GuzzleCollector\GuzzleCollector::INFO_* constants). If missing, all information will be used. The times information will always be available.

Additionally, You can include and exclude headers (case-insensitive). Remember, that inclusions have priority over exclusions.

abstract => [
	// ...

	'collect' => [
		\Miquido\RequestDataCollector\Collectors\GuzzleCollector\GuzzleCollector::INFO_HEADERS => [
			// We don't want Authorization header to be present in logs
			'excludes' => [
				'Authorization'
			],

			// From all headers that has been sent, only those are interesting for us
			'includes' => [
				'Accept',
				'content-type',
			],
		],
	],
],

When create equals true, defines to add an instance to the container even if it does not exist.

About

The project was made by Miquido: https://www.miquido.com