PHPackages                             jaysn/spongemock - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. jaysn/spongemock

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

jaysn/spongemock
================

A PHP Helper for mOCkInG tExt LIkE sPoNgEbOb WOuLd

1.0.0(6mo ago)02MITPHPPHP &gt;=7.4

Since Nov 9Pushed 6mo agoCompare

[ Source](https://github.com/jaysn/spongemock)[ Packagist](https://packagist.org/packages/jaysn/spongemock)[ RSS](/packages/jaysn-spongemock/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

Spongemock
==========

[](#spongemock)

[![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE)[![php 7.1+](https://camo.githubusercontent.com/9facbb601d0804bb97810652509228f831e79c0b163e8c8544a22d0d84fa8771/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d372e312e302b2d626c75652e7376673f6c6f676f3d706870)](https://camo.githubusercontent.com/9facbb601d0804bb97810652509228f831e79c0b163e8c8544a22d0d84fa8771/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d372e312e302b2d626c75652e7376673f6c6f676f3d706870)

A PHP implementation of [nkrim/spongemock](https://github.com/nkrim/spongemock) to `mOCk SoMe TexT lIKe SpONGebOb wOuLd` in PHP

Installation
------------

[](#installation)

**Installation using [Composer](https://getcomposer.org/)**

```
composer require jaysn/spongemock
```

Usage
-----

[](#usage)

### Basic Usage

[](#basic-usage)

**Using instances of the Mocker is recommended for processing multiple strings with the same settings**

```
use Jaysn\Spongemock\Mocker;

$mocker = new Mocker();

// $mockedText would be sth like 'MoCK sOMe tExt LIkE sPoNgEbOb WOuLd'
$mockedText = $mocker->process('mock some text like spongebob would');
```

**Setting the diversity bias or custom seed for RNG**

The Constructor of `Mocker` accepts Parameters `$diversityBias` and `$randomSeed`.

`diversityBias` is used for the distribution of case-swaps. Using a higher bias causes more swaps between upper and lowercase, using a lower value reduces them accordingly.

`randomSeed` is a custom seed for the Mersenne Twister Random Number Generator used for randomly swapping cases based on `diversityBias`. Settings this value allows deterministic creation of strings, as `mt_srand()` is used to pre-seed the RNG with this value for each call of `Mocker::process()`, thus returning the same string if given the same seed.

```
// less random swaps
$mocker = new Mocker(0.2);
$mocked = $mocker->process('mock some text like spongebob would');

// More random swaps (balanced distribution)
$mocker = new Mocker(0.8);
$mocked = $mocker->process('mock some text like spongebob would');

// default swapping but custom seed (for reproducable results)
$mocker = new Mocker(0.5, 42);
$mocked = $mocker->process('mock some text like spongebob would');
```

### Static Usage

[](#static-usage)

> ⚠ This is not recommended if processing multiple strings as every call creates another instance of the `Mocker` Class

```
use Jaysn\Spongemock\Mocker;

// $mockedText would be sth like 'MoCK sOMe tExt LIkE sPoNgEbOb WOuLd'
$mockedText = Mocker::mock('mock some text like spongebob would');
```

**Setting the diversity bias or custom seed for RNG**

```
// less random swaps
$mocked = Mocker::mock('mock some text like spongebob would', 0.2);

// More random swaps (balanced distribution)
$mocked = Mocker::mock('mock some text like spongebob would', 0.8);

// default swapping but custom seed (for reproducable results)
$mocked = Mocker::mock('mock some text like spongebob would', 0.5, 42);
```

---

Now go ahead and `mOCk SoMe TexT lIKe SpONGebOb wOuLd`

[![](https://camo.githubusercontent.com/0969854dca2447996ddd23f9144a0052db1944497ac044f130c476fe4db4888c/68747470733a2f2f692e6b796d2d63646e2e636f6d2f70686f746f732f696d616765732f6e657773666565642f3030322f3733382f3732352f3236352e6a7067)](https://camo.githubusercontent.com/0969854dca2447996ddd23f9144a0052db1944497ac044f130c476fe4db4888c/68747470733a2f2f692e6b796d2d63646e2e636f6d2f70686f746f732f696d616765732f6e657773666565642f3030322f3733382f3732352f3236352e6a7067)

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance73

Regular maintenance activity

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 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

Unknown

Total

1

Last Release

180d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/90198d1aac53b9a5141094be8a405b8509cdb03ec1d6518e307f037ddb39c328?d=identicon)[jaysn\_de](/maintainers/jaysn_de)

---

Top Contributors

[![jaysn](https://avatars.githubusercontent.com/u/436796?v=4)](https://github.com/jaysn "jaysn (2 commits)")

---

Tags

memesphpspongebob

###  Code Quality

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/jaysn-spongemock/health.svg)

```
[![Health](https://phpackages.com/badges/jaysn-spongemock/health.svg)](https://phpackages.com/packages/jaysn-spongemock)
```

PHPackages © 2026

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