PHPackages                             jaem3l/unfuck - 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. jaem3l/unfuck

ActiveComposer-plugin[Utility &amp; Helpers](/categories/utility)

jaem3l/unfuck
=============

The library to unfuck the vendor code and fuck up your own

v0.2.1(1y ago)83113MITPHPPHP ^8.2

Since Feb 17Pushed 7mo ago5 watchersCompare

[ Source](https://github.com/jaem3l/unfuck)[ Packagist](https://packagist.org/packages/jaem3l/unfuck)[ RSS](/packages/jaem3l-unfuck/feed)WikiDiscussions main Synced today

READMEChangelog (6)Dependencies (4)Versions (7)Used By (0)

Jæm3l Unfuck
============

[](#jæm3l-unfuck)

Since years the evolution of PHP has made it harder and harder to use vendor code without giving a fuck about the runtime.

So, if you are tired by the burden OSS maintainers are putting onto you by

- using the `final` keyword on classes or methods
- reducing the visibility of properties or methods to `private` or `protected`
- limiting capabilities by adding type declarations, return types or typed properties
- forcing you to pass method arguments by making them mandatory
- enforcing immutability with harsh `readonly` modifiers
- improving runtime stability

Jæm3l got you covered!

Just install jaem3l/unfuck to unfuck the vendor code you're using and fuck up your own:

```
$ composer require jaem3l/unfuck

```

**Jæm3l Unfuck** will hook into the runtime to get rid of all that painful limitations and give you all that freedom to shoot yourself in the foot, back or head the way you desire the most.

Example
-------

[](#example)

Your vendor library provides you a feature class like

```
final class Example
{
    private readonly string $foo;

    public function __construct(string $foo)
    {
        $this->foo = $foo;
    }

    private function getFoo(): string
    {
        return $this->foo;
    }
}
```

but you're sure you want to use it like this:

```
$inst = new class extends Example{};
$inst->foo = 42;

var_dump($inst->getFoo());
```

With **Jæm3l Unfuck** you are finally free to do it. YOLO

PS: This might impact runtime performance in time and memory consumption. But if you install this, you've already proven that you don't really care about your runtime. Why should this stop you?!

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance55

Moderate activity, may be stable

Popularity19

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 83.3% 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 ~227 days

Recently: every ~282 days

Total

6

Last Release

460d ago

PHP version history (2 changes)v0.1PHP ^8.1

v0.2.1PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/e644c6c1e90b7d997edd1c25da41c48a76d89b7449fb5788214b341e2cd1a019?d=identicon)[chr-hertel](/maintainers/chr-hertel)

---

Top Contributors

[![chr-hertel](https://avatars.githubusercontent.com/u/2852185?v=4)](https://github.com/chr-hertel "chr-hertel (10 commits)")[![DanielEScherzer](https://avatars.githubusercontent.com/u/179652704?v=4)](https://github.com/DanielEScherzer "DanielEScherzer (1 commits)")[![paulfedorow](https://avatars.githubusercontent.com/u/966844?v=4)](https://github.com/paulfedorow "paulfedorow (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/jaem3l-unfuck/health.svg)

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

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M346](/packages/psalm-plugin-laravel)[symfony/runtime

Enables decoupling PHP applications from global state

74798.8M1.0k](/packages/symfony-runtime)[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k14](/packages/tempest-framework)[drupal/core-composer-scaffold

A flexible Composer project scaffold builder.

5344.1M557](/packages/drupal-core-composer-scaffold)[drupal/core-project-message

Adds a message after Composer installation.

2124.7M202](/packages/drupal-core-project-message)[v.chetkov/php-clean-architecture

PHP Clean Architecture

14659.9k](/packages/vchetkov-php-clean-architecture)

PHPackages © 2026

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