dragon-code/laravel-app
Lightweight Laravel package that wraps application metadata in convenient helpers, letting you retrieve the app name, version, environment, and debug state anywhere in your code. Easy to install and configurable.
Architecture fit. dragon-code/laravel-app is a single-purpose artisan-command shim: a service provider that re-registers app:name, the namespace/config-rewriting command that Laravel deprecated in 8.x and removed in 9.x. It has no request-path footprint — no middleware, no facade, no config merge, no migrations. Structurally it fits any Laravel app via package auto-discovery, but it is developer tooling, not application architecture. It belongs in require-dev at most; shipping it in production require would be a category error.
Integration feasibility. composer require dragon-code/laravel-app and it works — on the versions it was built for. The package was last released 2022-02-14, which places its verified target at Laravel 9.x. The command's core mechanism is string substitution over config/app.php plus PSR-4 namespace edits, and that assumed file layout is the pre-11 slim skeleton. Feasibility is therefore high-but-bounded: trivial to install, unverified beyond Laravel 9.
Technical risk.
app:name rewrites source namespaces in place. Historically this was removed partly because it produced half-applied renames (namespace changed, autoload map stale, composer dump-autoload failing) that were painful to reverse. This is the dominant risk, not the package itself.app:name, last-registered wins silently.Key questions.
app:name anywhere — CI scripts, scaffolding docs, onboarding runbooks, or a template repo?APP_NAME in .env and needs no package.Assessment. The opportunity: 8.88 score is the interesting signal: the gap is real (teams migrating 8→9 with app:name in their scripts hit a wall), but the artifact is weak and abandoned. Leverage it as a documented stopgap with a scheduled sunset, or replicate its behavior in-house. Do not let it become a permanent dependency.
Stack fit. Correct only for Laravel 9.x-era applications with an active 8→9 migration. On Laravel 10 it is plausible but unproven; on Laravel 11 the slim skeleton (no default app/Http/Kernel.php, relocated config publishing, changed autoload expectations) makes silent misbehavior likely. Scope approval to "Laravel 9 migration window, require-dev only."
Migration path. Recommended sequence, cheapest first:
php artisan app:name Foo in docs and scripts with APP_NAME=Foo in .env plus a documented find/replace for the App\ namespace. This satisfies the majority of real use cases and eliminates the dependency outright.make:rename-app command rather than adopting the package. It is a bounded piece of work: rename the app/ namespace directory structure, patch composer.json autoload.psr-4, run composer dump-autoload, and refuse to run on a dirty working tree.dragon-code/laravel-app behind a require-dev constraint pinned to ^9.0, with a written sunset date.Compatibility. Verify empirically before any adoption decision: install on a scratch branch, run the command against a throwaway app on each Laravel version in the matrix, and git diff the result. Treat any Laravel 11 result as failing until proven otherwise. Add a CI job that asserts composer validate and a clean dump-autoload after the command runs.
Sequencing.
app:name across repos, CI configs, docs, and onboarding material. This determines whether the package is needed at all.require-dev with a pinned constraint, a smoke test, and a linked sunset ticket.composer remove, delete the runbook reference), so the exit cost is near zero — make sure the sunset ticket exists before the dependency lands.Maintenance. Archived means the maintenance burden transfers to us in full. The good news is the code is small enough that forking it into packages/ under our own namespace is a sub-day task for one engineer. Budget that fork rather than assuming upstream will ever move.
Support. No upstream maintainer response, no issue triage, no patches. Internal support means an engineer reading the service provider — which is feasible given its size. The larger support cost is organizational: engineers will discover an archived package in composer.json and lose confidence in the toolchain. Document the rationale and the sunset date in the repo, not just in a ticket.
Scaling. Effectively irrelevant. The package never executes in the request lifecycle, so it has no bearing on throughput, latency, or horizontal scaling. Its invocation frequency is "once per new application scaffold" — single-digit executions per year. Optimize nothing here.
Failure modes. Ranked by impact:
composer.json PSR-4 mapping or autoload cache stale, producing class-not-found errors at runtime. Highest severity; recoverable only via git checkout or manual repair.App as a substring rather than a namespace segment, corrupting unrelated strings.app:name and wins.git diff review of the command's output, and add the post-run dump-autoload assertion to CI.Ramp-up. Near zero for engineers — roughly 15 minutes to read the provider, and the command's UX matches what senior engineers remember from Laravel 8. The ramp-up risk is not learning cost; it is that nobody on the team will know the package is archived, unmaintained, and unverified beyond Laravel 9 unless the decision record says so explicitly.
Bottom line. Treat this as a 60–90 day bridge with a named owner and a hard sunset, and only if the app:name inventory shows real usage. Absent that evidence, the correct TPM move is to decline adoption, fold the behavior into an in-house command, and capture the migration guidance as documentation — which is the durable version of what this package was trying to provide.
How can I help you explore Laravel packages today?