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

Version Bundle Laravel Package

netbrothers-gmbh/version-bundle

NetBrothers VersionBundle helps Symfony apps centralize and expose application version/build metadata. Configure a version once and access it in services and Twig templates for easy display, diagnostics, release tracking, and consistent version reporting across environments.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This release is a platform-alignment drop rather than a feature release. Refactoring for Symfony 7.4/8 plus a PHP >=8.4 floor signals the package is tracking the leading edge of the Laravel/Symfony support matrix — most likely Laravel 12+ (Symfony 7.4) with forward compatibility for the next Laravel major. If your application is on Laravel 10/11 (Symfony 6.4/7.0–7.2), this package version will not resolve at all. Architecturally the package remains a standard Laravel service-provider integration; there is no indication of a new extension mechanism, config schema change, or facade change in these notes.

Integration feasibility. Two hard gates and one soft gate:

  • Hard gate 1 — PHP runtime: every environment (CI, staging, prod, local Docker, queue workers, scheduled-task hosts) must be on PHP 8.4+ before this can be installed.
  • Hard gate 2 — Symfony component versions: Composer must be able to satisfy Symfony 7.4/8 constraints. This is transitive on the Laravel major version; a composer why-not check is the fastest way to confirm.
  • Soft gate — the BC break: marking all service and command classes final is a compile-time contract change. Any downstream code that extends a package service, decorates a command, or uses PHPUnit getMockBuilder(...)->onlyMethods() / createPartialMock() against these classes will fatal or fail tests. This is the item most likely to surprise teams, because it fails loudly at runtime/test time rather than at composer update.

Technical risk. Medium-high for the upgrade itself, low-to-medium as steady state.

  • The final change is a hard BC break with no deprecation runway — v3 → v4 is a major, so that is contractually fair, but it is worth confirming the package ships interfaces (or at least public contracts) for every class it just closed. If it does not, teams that legitimately need to customize behavior are stranded on v3.
  • PHP 8.4 as a minimum (not just a maximum-supported ceiling) is aggressive if 8.4 is not yet your fleet baseline. It converts a library upgrade into an infrastructure program.
  • Symfony 8 support is forward-looking; if the package declares a hard Symfony 8 requirement rather than ^7.4|^8.0, it may not co-install with the Laravel version you are actually running today.
  • Documentation update is listed but unqualified — the migration guide's quality is the single biggest determinant of upgrade cost here.

Key questions.

  1. What is the exact Composer constraint set — php: ^8.4, symfony/*: ^7.4|^8.0, and which illuminate/* / laravel/framework ranges?
  2. Does the package publish interfaces or abstract contracts for every class newly marked final, so that DI substitution remains possible without inheritance?
  3. Is there a maintained v3.x branch with a security-fix window, and for how long?
  4. Is final applied to classes documented as extension points (custom commands, custom service implementations)? Was any of that surface used in a documented recipe?
  5. Does the migration guide enumerate each final class, or is it a one-line "classes are now final" note?
  6. Any behavior change beyond final — constructor signatures, container binding keys, config keys, command signatures?

Integration Approach

Stack fit. Confirm your Laravel/PHP matrix first. The decision tree is short:

Your runtime Your Laravel Action
PHP < 8.4 any Stay on v3.x; do not attempt v4.
PHP 8.4+ Laravel 10/11 Blocked on Symfony constraints; stay on v3.x.
PHP 8.4+ Laravel 12+ v4 is viable — plan the final remediation.
PHP 8.4+ Laravel 12+, heavy customization of package classes Only if interfaces exist; otherwise v3.x and raise upstream.

Migration path.

  1. Static audit before touching Composer. Grep for extends <PackageNamespace> and for the package's class names in app/, tests/, and any internal packages. Also grep tests for createPartialMock, getMockBuilder, onlyMethods, setMethods. This produces the real blast radius.
  2. Runtime and dependency bump. Move the PHP baseline in CI images, Dockerfiles, and composer.json platform config first, independently of the package bump. Land it as its own PR so failures are attributable.
  3. Package bump in isolation. composer require <pkg>:^4.0 --with-all-dependencies, then run the full test suite before any application code changes. This separates "dependency conflict" failures from "final class" failures.
  4. Remediate extension points. Replace inheritance with interface binding in a service provider, or with decoration via the container. Where the package offers no interface, use config-driven behavior if available; otherwise this is an upstream feature request, not a local workaround.
  5. Test doubles. Swap partial mocks for interface-based fakes or hand-written stubs. This is usually the largest single chunk of upgrade work in test-heavy codebases.
  6. Validate behavior. Even a "no behavior change" release deserves one pass over the package's user-facing surfaces — command output, scheduled jobs, queue payloads — because the Symfony refactor touches the HTTP/console layer beneath them.

Compatibility and sequencing. Do not bundle this with a Laravel major upgrade. Two simultaneous majors (framework + package) makes every failure ambiguous. Sequence: PHP baseline → Laravel upgrade (if needed) → package v4. If you must do Laravel and the package together, pin the package to v3 first, complete the Laravel upgrade green, then bump the package.

Rollback. Because v4 is a major with a PHP floor, rollback requires reverting the runtime image too. Tag the container image and lockfile at the pre-upgrade commit so rollback is a single deploy, not a rebuild.

Operational Impact

Maintenance. The final policy is a net positive for the package maintainers — it shrinks the supported extension surface, removes a class of "you overrode a private-ish method" bug reports, and makes internal refactoring safe across Symfony majors. The cost is transferred downstream: teams that customized via inheritance now own a migration, and teams that need customization the package does not expose via interfaces own a permanent fork or a pinned v3. Expect a small wave of upstream issues immediately post-release from users hitting final fatals without a clear migration note.

Support. Two risks to flag to stakeholders. First, a PHP 8.4 minimum narrows the supportable window: your platform team can no longer patch-test older runtimes for this service. Second, if v3.x is not maintained in parallel, every application on PHP <8.4 is effectively frozen on a package version receiving no security fixes. Get a written answer on the v3 support window before this becomes urgent rather than optional.

Scaling. No scaling-relevant change is described. The Symfony 7.4/8 refactor is an internal alignment and should be neutral for throughput, memory, and queue behavior. Treat any performance claim as unverified; there's nothing here to benchmark.

Failure modes to watch.

  • Autoload-time fatal: Class X cannot extend final class Y — surfaces on first request or first console boot, not at install. Mitigate with a full test run plus a smoke boot of artisan in CI before deploy.
  • Silent test-double drift: partial mocks that used to work now error, or worse, get rewritten in a way that stops asserting the thing they were asserting. Review rewritten tests, don't just make them green.
  • Dependency resolution deadlock: php: ^8.4 and symfony/*: ^8.0 interacting badly with a transitive Laravel constraint — appears as a confusing composer update conflict. Resolve with composer why-not rather than by loosening constraints.
  • Config drift: if the Symfony refactor subtly changed default service configuration, behavior may differ in edge cases without a failing test. Budget one staging soak cycle.
  • Documentation lag: release notes say docs were updated; verify the migration guide actually enumerates the final classes before planning effort from it.

Ramp-up. Low conceptual load — no new concepts, no new APIs to learn. The effort is mechanical but broad: audit, interface rewiring, test-double rewrites. For a mid-size Laravel app, budget roughly 1–3 engineer-days if the audit finds no extends usage, and 1–2 engineer-weeks if it finds several, dominated by test remediation. The PHP 8.4 infrastructure move, if not already done, is a separate and larger effort owned by platform/infra, not by this package's consumers.

Recommendation. Adopt v4 if you are already on PHP 8.4 and Laravel 12+, and run the extends/mock audit first — it is cheap and determines the whole estimate. Defer if you are below PHP 8.4, and in that case confirm the v3.x support window in writing. For teams with deep inheritance-based customization, do not adopt until the package confirms interface-based extension points exist.

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.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log