php-console/laravel-service-provider
Integrates php-console with Laravel by registering the console as a service provider, so you can build and run custom CLI commands using Laravel's container, config, and Artisan-style workflow.
Recommendation: Reject for new development. Contain and remove in legacy estates.
This package is a thin Laravel service-provider bridge (barbushin/php-console-laravel) around the barbushin/php-console PHP library, which talks to a Google Chrome extension to stream errors, var_dump output, and a remote PHP-eval console back to the browser. As a TPM, the decisive facts are not the 73 stars — they are the last release date (2015-06-30), the zero dependent count, and the fact that the package's core value proposition is remote code execution from a browser extension.
Architecture fit. The design is a Laravel 4/5-era service provider that registers error/exception handlers and a dump handler at boot. It predates Laravel 5.5 package auto-discovery (Aug 2017), so composer.json will not carry an extra.laravel block — manual registration in config/app.php is mandatory. Laravel 11 moved provider registration to bootstrap/providers.php, and the underlying library assumes a PHP 5.4–7.x runtime. Fit against any currently supported Laravel (10/11/12) is effectively zero without a fork.
Integration feasibility. Mechanically easy to install in a legacy app (one composer require, one provider line, one config publish) and easy to gate behind APP_ENV/APP_DEBUG. That ease is the trap: it lowers the barrier to standing up an unauthenticated-by-default RCE endpoint in an environment that may not be a developer laptop.
Technical risk.
each(), curly-brace string offsets, dynamic property deprecations) or for the Chrome extension's Manifest V2 retirement.spatie/laravel-ignition, and Telescope's own handlers. Handler ordering bugs are subtle and manifest as swallowed exceptions.Key questions for the owning team.
Stack fit. Narrow and terminal: Laravel 4.x/5.x, PHP ≤7.x, Chrome with MV2 extension support. It is not a candidate for a modern Laravel service. The only viable integration context is a frozen legacy application already on that stack, or an isolated local-only dev container.
Compatibility and migration path. There is no upgrade path through this package — it is a dead end on the framework upgrade graph. Treat it as an obstacle to be removed, not a component to be modernized:
| Concern | Position | Action |
|---|---|---|
| Laravel 10/11/12 | Incompatible | Do not attempt; replace capability |
| PHP 8.0+ | Likely fatal (old syntax, removed functions) | Remove before runtime upgrade |
| Laravel 5.5+ auto-discovery | Absent | Manual provider registration only |
| Chrome MV2 | Retired | Extension is the hard dependency, not the PHP side |
Replacement mapping (the migration path that actually matters):
Ray (paid, best DX) or symfony/var-dumper + spatie/laravel-ignitionspatie/laravel-ignition (default in Laravel 8+), Laravel Telescope for request/query/job historyitsgoingd/clockworkSequencing.
composer why barbushin/php-console-laravel across all repos; flag any non-local environment where the provider is registered.APP_ENV=local, rotate any console password that has ever been committed, and confirm no route/port is internet-reachable.composer audit and the abandoned-package warning are clean.Maintenance. Effectively infinite cost-per-value: you inherit 100% of upkeep for a convenience feature. Any PHP or Laravel upgrade requires you to patch vendor code (fork + VCS repository entry in composer.json), and every patch is unreviewed by upstream. For a dev-only tool, that is a bad trade against mature, actively maintained alternatives with the same or better capability.
Support. No vendor, no maintainer responsiveness, no documented support channel. The 73 stars and stale README mean answers come from reading source. Escalation path for a broken debugger is "an engineer stops debugging and fixes the debugger."
Scaling. The tool does not scale along the application's axes because it should never exist outside local development. The scaling concern is organizational: as headcount and environment count grow, the probability that one developer enables it on a shared host — and the number of people who know it exists — both rise. That is a governance problem, not a capacity problem, and it is best solved by elimination rather than policy.
Failure modes.
barbushin/php-console is unpinned in practice; there will be no future security release, so any CVE is permanently open.Ramp-up. Near-zero to learn, near-zero to justify. A developer is productive in under an hour; the cost is entirely downstream — every future framework upgrade carries a "did we get rid of the console provider yet?" checklist item, and the team must re-learn a modern debugging stack anyway when the extension inevitably stops working. Net: the learning investment is better spent on Xdebug and Telescope, which have durable, transferable value.
Bottom line for the portfolio: keep, do not expand. Budget roughly one engineer-day per affected repository to contain and remove, and treat the removal as a prerequisite gate on any PHP 8 or Laravel major upgrade. The opportunity score of 3.13 is generous for a package whose primary function is remote code execution from a browser extension last updated in 2015.
How can I help you explore Laravel packages today?