PHPackages                             phoneburner/composer-replacements - 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. phoneburner/composer-replacements

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

phoneburner/composer-replacements
=================================

A 'no-op' Composer dependency used to cleanly replace other packages and unneeded polyfills

v1.0.7(2mo ago)02.3k—0%6MITDockerfilePHP ^8.4.0CI passing

Since May 22Pushed 2mo ago2 watchersCompare

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

READMEChangelogDependenciesVersions (8)Used By (6)

PhoneBurner Composer Replacements
=================================

[](#phoneburner-composer-replacements)

A 'no-op' Composer package used to cleanly replace other dependencies and unneeded polyfills.

### Why replace safe polyfill packages like `symfony/polyfill-php84`?

[](#why-replace-safe-polyfill-packages-like-symfonypolyfill-php84)

1. A root project that depends on this library is guaranteed to be on PHP 8.4 or later, due to this library's version constraints. If some other dependency of the root project requires the `symfony/polyfill-php84` package, that package is completely unnecessary and adds overhead to every request. That overhead is very slight, especially when opcache is enabled, but it exists nevertheless. Polyfills usually have some kind of "bootstrap.php" file configured to always load and execute when Composer initializes autoloading. Ideally, polyfill libraries minimize their performance impact with some kind of early return conditional that checks for the PHP version or existence of a particular extension.
2. Because they *could* define methods in the global namespace, even though the definition code would never execute at runtime, unneeded polyfills can complicate static analysis and IDE tooling. Beyond simple "multiple definitions exist" warnings, nothing enforces a polyfill method to have the same signature as method it covers.
3. Unneeded packages are unnecessary downloads when building production images and have dependency constraints that Composer has to manage. These are additional potential points of failure.

### Why require this package instead of defining replacements in the root?

[](#why-require-this-package-instead-of-defining-replacements-in-the-root)

1. Repeatability across multiple projects.
2. Requiring this library as a dev dependency does not other affect packages that require it. This is most useful for frameworks and framework-like packages where the library has complex behavior and testing.
3. The output of Composer commands that produce tree output is *significantly* cleaner, especially if also run recursively.

```
 docker run --rm -it -v $PWD:/app -u $(id -u):$(id -g) composer/composer install --ignore-platform-reqs
```

###  Health Score

49

—

FairBetter than 94% of packages

Maintenance90

Actively maintained with recent releases

Popularity21

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 91.7% 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 ~44 days

Recently: every ~6 days

Total

7

Last Release

88d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7ecc476ac18daccbca443ff60a1a3a58d213617e7954eb9511d63c685a7c4c3d?d=identicon)[kevinreeves](/maintainers/kevinreeves)

---

Top Contributors

[![andysnell](https://avatars.githubusercontent.com/u/7006523?v=4)](https://github.com/andysnell "andysnell (11 commits)")[![kevinreeves](https://avatars.githubusercontent.com/u/723899?v=4)](https://github.com/kevinreeves "kevinreeves (1 commits)")

### Embed Badge

![Health badge](/badges/phoneburner-composer-replacements/health.svg)

```
[![Health](https://phpackages.com/badges/phoneburner-composer-replacements/health.svg)](https://phpackages.com/packages/phoneburner-composer-replacements)
```

###  Alternatives

[spatie/unit-conversions

Perform unit conversions in PHP

363.5k](/packages/spatie-unit-conversions)[devaly/wordpress-routes

Manage rewrites and routes in WordPress with this dead-simple plugin

101.2k](/packages/devaly-wordpress-routes)

PHPackages © 2026

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