PHPackages                             poor-plebs/guzzle-obfuscated-formatter - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. poor-plebs/guzzle-obfuscated-formatter

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

poor-plebs/guzzle-obfuscated-formatter
======================================

Guzzle HTTP message formatter with configurable obfuscation for safe logging of sensitive data.

1.0.2(2mo ago)0398[1 PRs](https://github.com/Poor-Plebs/guzzle-obfuscated-formatter/pulls)2MITPHPPHP ^8.4.0CI passing

Since Feb 25Pushed 1mo agoCompare

[ Source](https://github.com/Poor-Plebs/guzzle-obfuscated-formatter)[ Packagist](https://packagist.org/packages/poor-plebs/guzzle-obfuscated-formatter)[ RSS](/packages/poor-plebs-guzzle-obfuscated-formatter/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (9)Versions (6)Used By (2)

poor-plebs/guzzle-obfuscated-formatter
======================================

[](#poor-plebsguzzle-obfuscated-formatter)

[![CI](https://github.com/Poor-Plebs/guzzle-obfuscated-formatter/actions/workflows/ci.yml/badge.svg)](https://github.com/Poor-Plebs/guzzle-obfuscated-formatter/actions/workflows/ci.yml)[![codecov](https://camo.githubusercontent.com/29fd998ccccbf4dab6f70b24e083975b8c4dd80a41e894e6daebf8eb460aaec1/68747470733a2f2f636f6465636f762e696f2f67682f506f6f722d506c6562732f67757a7a6c652d6f6266757363617465642d666f726d61747465722f6272616e63682f6d61696e2f67726170682f62616467652e737667)](https://codecov.io/gh/Poor-Plebs/guzzle-obfuscated-formatter)

**[What is it for?](#what-is-it-for)** | **[What are the requirements?](#what-are-the-requirements)** | **[How to install it?](#how-to-install-it)** | **[How to use it?](#how-to-use-it)** | **[How to contribute?](#how-to-contribute)**

Guzzle HTTP message formatter with configurable obfuscation for safe logging of sensitive data.

What is it for?
---------------

[](#what-is-it-for)

This package provides a Guzzle `MessageFormatterInterface` implementation that can selectively obfuscate sensitive data in HTTP messages before logging. It supports obfuscating:

- **URI path segments** via regex patterns
- **Query parameters** by name
- **Request and response headers** by name
- **JSON body fields** (request and response) by key, including nested fields
- **User info** (password part) in URIs

It also includes utilities for PSR-7 message stringification with large payload compression.

What are the requirements?
--------------------------

[](#what-are-the-requirements)

- PHP 8.4 or above
- Guzzle HTTP 7.4.5+

How to install it?
------------------

[](#how-to-install-it)

```
composer require poor-plebs/guzzle-obfuscated-formatter
```

How to use it?
--------------

[](#how-to-use-it)

### Basic usage

[](#basic-usage)

```
use PoorPlebs\GuzzleObfuscatedFormatter\GuzzleHttp\ObfuscatedMessageFormatter;
use PoorPlebs\GuzzleObfuscatedFormatter\Obfuscator\StringObfuscator;

$formatter = (new ObfuscatedMessageFormatter(ObfuscatedMessageFormatter::DEBUG))
    ->setQueryParameters(['api_key', 'token'])
    ->setRequestHeaders(['Authorization'])
    ->setResponseHeaders(['Set-Cookie'])
    ->setRequestBodyParameters(['password', 'secret'])
    ->setResponseBodyParameters(['access_token']);
```

### URI path obfuscation with regex

[](#uri-path-obfuscation-with-regex)

```
$formatter->setUriParameters([
    '/\/api\/v1\/users\/\d+/' => new StringObfuscator('*', 5),
]);
```

### Custom obfuscator per parameter

[](#custom-obfuscator-per-parameter)

```
$formatter->setRequestHeaders([
    'Authorization' => new StringObfuscator('X', 3),  // Replaces with "XXX"
]);
```

How to contribute?
------------------

[](#how-to-contribute)

`poor-plebs/guzzle-obfuscated-formatter` follows semantic versioning. Read more on [semver.org](https://semver.org).

Create issues to report problems or requests. Fork and create pull requests to propose solutions and ideas.

### Development Setup

[](#development-setup)

This package uses modern PHP tooling with strict quality standards:

- **Testing**: [Pest PHP](https://pestphp.com/) v4 with parallel execution
- **Static Analysis**: PHPStan at level `max` with strict and deprecation rules
- **Code Style**: PHP-CS-Fixer (PSR-12)
- **Coverage Requirements**: Minimum 80% code coverage and 80% type coverage

### Available Commands

[](#available-commands)

```
composer test          # Run tests (parallel, no coverage)
composer coverage      # Run tests with coverage (min 80%)
composer type-coverage # Check type coverage (min 80%)
composer static        # Run PHPStan analysis
composer cs            # Check code style
composer csf           # Fix code style
composer ci            # Run full CI pipeline
```

### Docker

[](#docker)

```
bin/dc install         # Install dependencies via Docker
bin/dc test            # Run tests via Docker
bin/dc ci              # Run full CI pipeline via Docker
```

### Versioning and Releases

[](#versioning-and-releases)

This project uses [Semantic Versioning](https://semver.org) with tags in `MAJOR.MINOR.PATCH`format (no `v` prefix). Releases are automated via GitHub Actions when a tag is pushed.

```
bin/release-tag 1.0.0 notes.md --push
```

###  Health Score

45

—

FairBetter than 92% of packages

Maintenance87

Actively maintained with recent releases

Popularity18

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

75d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/7612582?v=4)[Petr Levtonov](/maintainers/TheLevti)[@TheLevti](https://github.com/TheLevti)

---

Top Contributors

[![TheLevti](https://avatars.githubusercontent.com/u/7612582?v=4)](https://github.com/TheLevti "TheLevti (11 commits)")

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/poor-plebs-guzzle-obfuscated-formatter/health.svg)

```
[![Health](https://phpackages.com/badges/poor-plebs-guzzle-obfuscated-formatter/health.svg)](https://phpackages.com/packages/poor-plebs-guzzle-obfuscated-formatter)
```

###  Alternatives

[spatie/laravel-health

Monitor the health of a Laravel application

85810.0M83](/packages/spatie-laravel-health)[marvinlabs/laravel-discord-logger

Logging to a discord channel in Laravel

2081.1M2](/packages/marvinlabs-laravel-discord-logger)[larabug/larabug

Laravel 6.x/7.x/8.x/9.x/10.x/11.x/12.x/13.x bug notifier

299549.3k1](/packages/larabug-larabug)[honeybadger-io/honeybadger-php

Honeybadger PHP library

381.5M4](/packages/honeybadger-io-honeybadger-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
