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

zenstruck/version-bundle

Zenstruck Version Bundle exposes your Symfony application's version to services, Twig, and the console by reading it from composer.json, a VERSION file, or your Git tags, so you can display build and release info consistently.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — The package is a Symfony2 bundle (ZenstruckVersionBundle), not a Laravel package. It integrates through Symfony's Bundle class, dependency-injection container, and config tree. Laravel uses service providers, facades, and a fundamentally different container. There is no shared extension point; the bundle cannot be installed into a Laravel application without a port. The description itself ("Keep track of your Symfony2 application's version") confirms the target framework, making this a category mismatch against a Laravel/PHP evaluation.

Integration feasibility — Low as shipped, moderate as a pattern. The underlying capability is small and well understood: resolve the application's version (from a VERSION file, git metadata, or a CI-injected value) and expose it via a service, template helper, or HTTP endpoint. The transferable value is the behavior spec, not the code. A Laravel-native reimplementation is likely 100–200 lines: a config key, a service provider binding a Version value object, a Blade directive, and an optional /version route.

Technical risk — High. The repository is archived, has 3 stars, 0 dependents, and targets Symfony2, which reached end-of-life in 2018. There is no security patching, no PHP 8 compatibility guarantee, and effectively no community validation. The composite score (0.0375) correctly reflects near-zero ecosystem signal. Any adoption means taking full ownership of an unmaintained code path built on abandoned framework abstractions.

Key questions — Does it read from a static file, git tags, or CI environment variables? Is the license permissive enough to reuse patterns? What is the actual requirement — internal build traceability or a public version endpoint? Does CI already emit a build tag, making this redundant? Who owns the code once copied?

Verdict: do not adopt as a dependency; evaluate only as a reference for a native implementation.

Integration Approach

Stack fit — Poor as shipped. Laravel and Symfony2 share PHP but not package conventions, autoloading expectations, or configuration idioms. Plan for a rewrite rather than an integration.

Migration path — Treat the repository as a reference implementation. Extract the behavior specification, then implement natively: a config/version.php, a VersionServiceProvider, a small immutable Version value object, a Blade directive, and an Artisan command or route. For most teams the simpler path is to skip the package entirely and inject the version at build time via CI (APP_VERSION env var or a generated version.php) read through config().

Compatibility — Verify the license before copying any code. Check PHP version constraints if vendoring is even considered. Do not add the package to composer.json; the abandonment risk outweighs any convenience.

Sequencing — (1) Spike: read the source and document exact behavior and edge cases. (2) Decide build-versus-config-only, defaulting to config-only. (3) If building, timebox to one day and keep it dependency-free. (4) Add a test that fails when version metadata is missing, so drift is caught in CI rather than production.

Operational Impact

Maintenance — You would own 100% of it. No upstream fixes, no CVE response, no PHP or Laravel version bumps. That is a permanent maintenance tax for a trivial feature.

Support — None. No maintainer, no issue triage, no community. Internal documentation would be the only support channel, and it would describe code no one else runs.

Scaling — The runtime workload is negligible (a string lookup, cacheable at boot). Scaling is a non-issue; the real cost is organizational, not computational.

Failure modes — Stale version strings when releases skip a bump; parse errors on malformed tags; accidental exposure of commit or build metadata on a public endpoint; and silent drift between the deployed artifact and the declared version. Mitigate with CI-generated version injection and a smoke test asserting /version matches the build tag.

Ramp-up — Technically low (small, readable code), but the decision overhead is high: engineers would learn an abandoned Symfony2 idiom in order to rebuild a Laravel feature. Recommend the team skip the package and invest the equivalent time in CI-injected build metadata, which delivers the same outcome with no third-party risk.

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.
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource