ys-tools/back-url-bundle
A Symfony bundle from ys-tools that helps applications track and restore the user's previous URL, so back links and post-action redirects return visitors to the right page. Configures through Symfony services and integrates with routing and session handling.
Architecture fit — poor, and mis-scoped. Despite the package description, this is not a Laravel package: it is a Symfony 2 bundle (ys-tools/back-url-bundle) providing a @BackUrl controller annotation that captures a return URL and redirects the user back after an action. It plugs into the Symfony 2 kernel (bundle class, DI container XML, doctrine/annotations reader, request/controller event listeners). Laravel exposes none of those extension points. The behavior it implements, however, maps almost 1:1 onto native Laravel primitives: redirect()->intended(), url()->previous(), session flash keys, and route middleware.
Integration feasibility — low as a dependency, trivial as a reimplementation. There is no Composer auto-discovery, no service provider, no Illuminate contracts, no PSR-15 middleware. Adopting it would mean writing a compatibility shim to translate Symfony 2 bundle bootstrapping into a Laravel service provider — strictly more work than writing the ~50 lines of middleware that produce the same outcome. Estimated effort to replicate the behavior natively: under one day including tests.
Technical risk — high / disqualifying.
symfony/* 2.x and doctrine/annotations 1.x pins).Key questions for the requesting team:
intended() / previous() does not already cover?Referer)? If so, who owns the allow-list?Verdict: reject as a dependency; treat it as a design reference only.
Stack fit — none. No Laravel support, no Symfony 5/6/7 support, no PSR-15 or PSR-11 interoperability. It cannot be installed into a Laravel application without forking and rewriting it.
Migration path — migrate the behavior, not the package. Replace the annotation with a Laravel-native pattern:
intended-style key when the request is a GET and the route opts in (attribute or route-metadata flag).redirect()->intended($fallback) after the action completes.If a per-action opt-in is genuinely required, PHP 8 attributes on the controller method are the modern equivalent of the Symfony 2 annotation and need no extra library.
Compatibility. Assume total incompatibility: Symfony 2 components, doctrine/annotations 1.x, and pre-PHP-7.4 syntax. Do not attempt installation in any environment, including ephemeral CI. There is no supported upgrade path because the upstream is archived.
Sequencing.
Maintenance. Effectively infinite relative to value. Because upstream is archived, adopting it transfers full ownership of both the package and the Symfony 2 compatibility shim to our team — a permanent liability for functionality that is otherwise a handful of lines. Zero upstream commits means zero upstream fixes, forever.
Support. No maintainer, no release cadence, no issue tracker activity, no documentation beyond a README. Any incident traces directly to us with no escalation path.
Scaling. Not a concern either way. The behavior is a session read plus a redirect; cost is negligible and does not vary with load. The redirect adds one round trip, which is inherent to the pattern, not to this package.
Failure modes to design against (in the reimplementation):
Referer — enforce same-host or an allow-list; never trust the header blindly.Ramp-up. For the native middleware: near-zero; any Laravel developer can own it immediately. For a ported Symfony 2 bundle: requires Symfony 2 and Doctrine annotation familiarity, plus ongoing attention to PHP runtime upgrades — an unjustifiable skills tax for this scope.
How can I help you explore Laravel packages today?