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

Framework Extra Bundle Laravel Package

short-edition/framework-extra-bundle

Framework Extra Bundle extends Laravel with practical helpers, traits, and utilities that reduce everyday boilerplate. With simple service provider registration, it drops convenient, reusable features into your app without restructuring existing code, helping you ship faster.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What this actually is. Despite the request framing this as a Laravel/PHP package, short-edition/framework-extra-bundle is a fork of SensioFrameworkExtraBundle, a Symfony bundle. It cannot be installed into a Laravel application in any meaningful way — there is no bundle registration, no Symfony DI container compiler pass chain, and no HttpKernel event dispatcher to hook into. Any evaluation has to start from that category error.

Architecture fit. The upstream bundle's value proposition was annotation-driven controller configuration: @Route, @Template, @Cache, @Security/@IsGranted, @ParamConverter, @Entity. Every one of those concerns has been absorbed into Symfony core:

Bundle annotation Native replacement Since
@Route #[Route] (symfony/routing) 5.2 / 6.0
@Template #[Template] (symfony/framework-bundle) 6.2
@Cache #[Cache] 6.2
@Security / @IsGranted #[IsGranted] (symfony/security-http) 5.2
@ParamConverter #[MapEntity], #[MapQueryParameter], #[ValueResolver] 6.2–6.3

Upstream is abandoned/EOL — SensioFrameworkExtraBundle was not carried into Symfony 7 and its maintainers explicitly directed users to the native attributes. So this fork is a snapshot of a deliberately retired component.

Integration feasibility: low. Realistic paths are (a) adopt inside a Symfony app pinned to 5.4/6.x that still leans on annotations — viable but strictly technical debt; (b) attempt to bend it into Laravel — not feasible without rewriting the bundle; (c) port individual ideas (ParamConverter-style resolution, template-name inference) into Laravel equivalents (Route::bind, implicit binding, view() inference) — feasible, but you would write it yourself rather than depend on this package.

Technical risk. High, and driven mostly by provenance rather than code quality (the underlying code was solid for its era):

  • Zero-star, zero-dependent fork from a non-obvious publisher (short-edition). No evidence of an active maintainer, release cadence, security-response process, or CI. A fork with no consumers is a one-person patch branch until proven otherwise.
  • Supply-chain exposure: installs a package whose upstream is retired; any CVE or PHP-version incompatibility (e.g., doctrine/annotations deprecation, PHP 8.4 implicit-nullable changes) will go unfixed here.
  • Annotation runtime dependency: requires doctrine/annotations, which is deprecated; PHP 8 native attributes are the supported path.
  • Lock-in to a dead idiom: new engineers will learn @Route in a codebase where modern Symfony docs only show #[Route].

Key questions for the requesting team:

  1. Which framework and version is actually in the target app — Symfony 5.4, Symfony 6.x, Laravel 10/11, or something else? The answer changes this assessment entirely.
  2. Why this fork rather than sensio/framework-extra-bundle (the upstream) — was a specific patch applied, and is that patch documented anywhere?
  3. Do you need the bundle or just the pattern (attribute-based controller config, param conversion)? The pattern is reproducible in ~200 lines.
  4. Who owns patching this when Symfony 7/8 or PHP 8.5 arrives? Is there an internal fork policy?
  5. What is the blast radius — how many controllers, and is the app greenfield or legacy?

Integration Approach

Stack fit. Mismatch on both plausible readings. In Laravel, there is no integration path: no bundle system, different routing, different container, different middleware model. In Symfony, the fit exists but is backward-looking — you would be adopting a component its own maintainers replaced.

If the target is Laravel (recommended mapping, no dependency on this package):

Desired capability Laravel-native equivalent
@Route on controllers spatie/laravel-route-attributes or explicit routes/web.php
@Template return view('users.show', $data) / View::first()
@Cache Cache::remember(), ResponseCache middleware
@IsGranted Gate/Policy, $this->authorize(), can: middleware
@ParamConverter Route-model binding, Route::bind(), custom ValueResolver via Model::resolveRouteBinding()
@Security expression Gate::allows() or FormRequest::authorize()

Migration path (if a legacy Symfony app is the real context). Treat this as a decommissioning project, not an adoption:

  1. Inventory every annotation usage via static analysis (grep plus PHPStan/Psalm rules, or Rector's @Route/@Template rulesets) and classify by replacement.
  2. Pin the current fork/upstream version and mirror it internally (Satis/private Composer repo) so a public deletion cannot break builds.
  3. Migrate leaf controllers first — routing and template annotations to #[Route]/#[Template] — then @ParamConverter (usually the hardest, because it hides business logic), then @Security last (highest risk of behavior drift).
  4. Run dual-stack briefly: Symfony 6.2+ supports both attribute and annotation syntax side by side, so you can migrate incrementally per controller.
  5. Remove the dependency once annotation counts hit zero; add a CI check that fails on new @Route usage.
  6. Then upgrade to Symfony 7 (which the bundle does not support).

Compatibility notes to verify before any commitment: PHP constraint (expect >=7.2.5 era, may not run cleanly on 8.4), Symfony ^4.4|^5.0|^6.0 constraints, and whether the fork's composer.json conflicts with symfony/routing >= 6.2 native attributes.

Sequencing advice. Do not greenfield on this. If greenfield, use native attributes (Symfony) or native route attributes (Laravel). The only defensible use is a short-lived bridge in an inherited legacy codebase with a funded migration off it.

Operational Impact

Maintenance. This is the dominant cost. A zero-star, zero-dependent fork has no community to absorb upgrades; every PHP minor and Symfony major becomes an internal ticket. Budget roughly 1–2 engineer-days per framework/PHP upgrade for a small fork, plus unbounded time if a PHP 8.4+ deprecation hits doctrine/annotations. Compare that to ~0 for native attributes.

Support. No vendor, no SLA, no issue triage. Internal ownership must be named explicitly (a person, not a team) or it becomes orphaned. If the fork exists because of a private patch, that patch's rationale is at risk of being lost — require a README/commit trail before adopting.

Scaling. Runtime cost is genuinely negligible — annotations are read once at container/cache warmup, and metadata is cached. The scaling concern is cognitive and organizational: the pattern doesn't scale to new hires, and it blocks the framework upgrade that does affect scale (PHP runtime versions, Symfony performance work, long-term support windows). Team scaling is the real constraint.

Failure modes.

  • Cache-warmup failure after an upgrade: annotation parse errors surface as opaque AnnotationException at deploy time, not at test time, unless cache warmup runs in CI.
  • Silent behavior change in @ParamConverter or @Security after a Symfony minor bump — 404s becoming 500s, or authorization quietly tightening/loosening. Needs integration tests around secured routes.
  • Package disappearance or force-push on a low-traffic GitHub repo — mitigate with an internal Composer mirror and committed lockfile.
  • PHP 8.4 implicit-nullable and doctrine/annotations removal — hard break with no upstream fix coming.
  • Fork drift: short-edition diverging silently from upstream means bug reports and Stack Overflow answers no longer apply.

Ramp-up. Low for anyone who worked in Symfony 4/5 (the annotations are well-known and widely documented). Negative for anyone hired after ~2023 — current Symfony and Laravel docs describe attributes and native routing exclusively, so new engineers will read a codebase whose idioms have no modern reference. Expect onboarding friction and a steady trickle of "why isn't this #[Route]?" PRs.

Recommendation. Do not adopt as a dependency. Treat the concepts as the valuable artifact and implement them natively: Symfony #[Route]/#[Template]/#[MapEntity]/#[IsGranted], or Laravel route attributes with policies and route-model binding. If a legacy app already depends on this bundle or its upstream, approve it only under an explicit, time-boxed migration plan with a named owner, a private Composer mirror, and a CI gate preventing new annotation usage.

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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource