Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Controller Action Extractor Bundle Laravel Package

gollumsf/controller-action-extractor-bundle

Symfony bundle for extracting the current controller and action from a request, making it easy to log, debug, or display which controller is handling each route. A lightweight helper for routing-aware applications.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The v2.0.2 release removes any remaining ambiguity: this is a Symfony Bundle, not a Laravel package. The release notes reference Symfony Flex (SYMFONY_REQUIRE), symfony_* CI jobs, a Symfony 8.1 workflow, and PHPUnit doubles of Symfony\Component\HttpFoundation\Request. There is no ServiceProvider, no Illuminate\Support\ServiceProvider contract, no extra.laravel block, and no auto-discovery path on composer require. Any Laravel use would require us to author and maintain an adapter on day one.

That said, the release is a genuinely positive maintenance signal. The package tracks the newest Symfony major, and the maintainer fixed a real breakage (Symfony 8.1 converted Request::$attributes to a hooked property, which broke assignment on PHPUnit test doubles). That is the behavior of someone actively running CI against HEAD, not a drive-by publish. Our prior "abandoned, single-maintainer" framing was too strong on the activity axis and remains correct only on the bus factor axis.

Integration feasibility. Still low, and still unnecessary. Laravel exposes this natively via request()->route()->getActionName(), Route::currentRouteAction(), Route::getCurrentRoute()->getActionMethod(), and the Route object directly. The package's real value-add is normalizing edge cases — closures, invokable controllers, _controller attributes holding a service ID. That normalization is 20–40 lines of idiomatic Laravel code.

Two new data points sharpen the feasibility picture:

  1. Version floor. Symfony 8.1 implies PHP 8.4+. Pulling a Symfony 8.1-era bundle into a Laravel monorepo would impose a PHP 8.4 floor on any service that installs it, and pull Symfony HttpFoundation/HttpKernel components we do not otherwise run. Whether Composer can even resolve that alongside our existing Laravel constraints is untested and, given the value at stake, not worth testing.
  2. Internals coupling. The bug fixed in this release was caused by the package's tests constructing Request doubles and poking framework internals. A library whose test suite is sensitive to a framework's property-implementation details is a library that will break on framework minors. For us that is a recurring upgrade tax with zero corresponding feature gain.

Technical risk. Material, unchanged in kind, marginally improved in degree:

  1. License. GPL-3.0 remains copyleft. Internal SaaS use is generally fine; the moment we ship an on-prem appliance, a customer-run Docker image, or publish a package containing it, legal review becomes mandatory. Disproportionate burden for a framework primitive.
  2. Ecosystem signal. Still a single-digit star count, no dependents, no downstream validation. Active CI against Symfony HEAD is not the same as a population of production users; we would still be first to hit novel bugs.
  3. Compatibility surface. We now know the package is aggressively forward-tracking on Symfony. That is good for Symfony shops and actively unhelpful for us — it guarantees periodic framework-internals churn, and the PHP 8.4 floor is a hard constraint we would inherit.
  4. Metadata hygiene (partially retracted). The earlier anomaly around the last-release date is now contextualized by a real, dated v2.0.2. The forward-dated release string still warrants a glance at the tag list, but this is no longer a red flag on its own.

Key questions.

  • Is there any organizational Symfony footprint with services on Symfony 8.1? That, and only that, is where this release has value.
  • What is the driving requirement — audit logging, per-action metrics, RBAC keyed on controller/action, or feature flagging? All four are served by native route introspection.
  • Does any proposed use case require distribution to customers? That determines whether GPL is a blocker or a footnote.
  • Is any Laravel service in the estate prepared to move to a PHP 8.4 floor to accommodate a transitive Symfony dependency?
  • Was this surfaced by an automated scan rather than a named engineering need?

Recommendation: do not adopt. The v2.0.2 release is competent maintenance of a package that solves a problem Laravel does not have. If we ever run Symfony services on 8.1, revisit as a reference implementation to read; if we need controller/action identity in Laravel, write the 30-line helper.

Integration Approach

Stack fit. Poor, and now explicitly confirmed rather than inferred. Laravel's package discovery, container binding, config publishing, and facade conventions have no counterpart in a Symfony bundle. Forcing the dependency in means maintaining a shim translating Symfony request attributes into Laravel's route abstraction — a shim needing its own tests, CI, and owner, to deliver a capability one method call away.

Migration path. Not applicable. The correct path is the internal spike already scoped: confirm the one-sentence requirement, prototype natively against our real route table (closures, invokables, resource routes, sub-domain routes, queued jobs), ship as an internal helper or small middleware with tests. The new release does not create a migration path; it confirms there was never a destination.

Compatibility. Now partly answered and, for us, worse than before. The package targets Symfony 8.1, which carries a PHP 8.4 floor and Symfony 8.x component constraints. In a Laravel monorepo on PHP 8.2/8.3, this is a likely composer update conflict, and even on 8.4 it inflates the dependency tree and the security patch surface with components we do not run. The release notes also reveal that the package's own test suite is coupled to Request internals — meaning compatibility can regress on Symfony minor bumps, not just majors. Verify composer.json for the actual PHP and Symfony constraints before any further effort.

Sequencing. If leadership still wants a formal evaluation: (1) requirements capture, (2) license opinion from legal scoped to internal-only vs. distributed, (3) native prototype, (4) A/B the two against our real routes including a PHP-constraint resolution dry run, (5) decision memo. Keep it under two weeks. Note that the release under review shortens step 4's expected conclusion rather than lengthening it: the compatibility answer is "requires PHP 8.4 and Symfony 8.x," which is a no for a Laravel estate.

Operational Impact

Maintenance. Bus factor of one, and this release does not change that — it demonstrates the maintainer is currently active and technically sharp, which lowers near-term abandonment risk but does not create a second maintainer. The practical concern also shifts slightly: an actively forward-tracking single-maintainer Symfony bundle is a recurring upgrade task, not a dormant one. Each Symfony minor is a "does the package still work, does the mock fix hold?" question, and each Laravel major is irrelevant to the maintainer. Forking GPL-3.0 to own that churn is strictly worse than owning 30 lines of our own code.

Support. Still no commercial support, SLA, or observable triage cadence. The release notes are in French with no English translation, which is a mild but real signal about the support audience: a francophone, Symfony-centric user base. Our engineers are neither. Incident review involving this component would require reading Symfony internals and, marginally, French — for a component whose entire function is "which controller handled this request."

Scaling. Functionally fine — request-scoped string resolution, no I/O, no cache, no state. The scaling concern is organizational and unchanged: if controller/action identity becomes the canonical tag for metrics, audit events, or authorization decisions, this package becomes a load-bearing part of our telemetry. A v2.0.2 that fixes a test-double breakage across the whole organization's observability pipeline is exactly the sort of coupling we should avoid. Governance risk, not throughput risk.

Failure modes. The interesting ones are the same edge cases native code must handle, which is why a thin in-house implementation is preferable — we own the fallback:

  • Closure and invokable controller routes, where no Class::method string exists to parse.
  • Sub-requests, internal forwarding, and fragment rendering, where "current" controller is ambiguous and a naive extractor returns inner or outer unpredictably.
  • Console and queue contexts, where no HTTP request exists and the extractor should fail closed.
  • Route caching (php artisan route:cache), which changes action serialization and can break string parsing that worked in development.
  • Middleware running before routing completes, where the route is not yet resolved.
  • New: framework-internal representation changes — this release exists because Symfony 8.1 changed Request::$attributes from a plain property to a hooked one. That class of change is invisible in changelogs and lands on patch bumps.

Each needs an explicit, tested answer. A single-maintainer dependency with no production user base gives no confidence on any of them.

Ramp-up. Effectively zero for the API surface — one or two methods. Ramp-up cost sits entirely in the surrounding decision: legal review of GPL-3.0, dependency-graph archaeology, PHP-version negotiation, and the eventual fork. Days of cross-functional coordination for a capability the framework hands us. The new release improves the package's technical credibility without moving the roadmap calculus: a technically competent solution to a problem we do not have. Close with a one-paragraph decision record noting that v2.0.2 confirms Symfony-only focus and a PHP 8.4 floor, and spend the saved time on the native helper.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core