incenteev/hashed-asset-bundle
incenteev/hashed-asset-bundle is a Symfony bundle for cache-busting static assets by generating and resolving hashed filenames. It helps serve versioned CSS, JavaScript, and images with long-lived browser caching while keeping templates clean and deployments predictable.
Architecture fit
Symfony\Component\Asset\VersionStrategy\VersionStrategyInterface and registers via symfony/dependency-injection and symfony/framework-bundle. It has no Laravel service provider, facade, or config publishing.asset() helper and Vite/Mix manifest pipeline do not consult symfony/asset, so the bundle's strategy would never be invoked even if autoloaded.VersionStrategy if the team is on Symfony.symfony/asset is the URL generator — i.e., Symfony applications, including Symfony-based Drupal or Ibexa installs.Integration feasibility
composer require incenteev/hashed-asset-bundle, register in bundles.php, configure the strategy. Low effort, single config surface. Use v1.6.2 or later — earlier tags carry incorrect symfony/asset and symfony/cache constraints.Technical risk
symfony/asset and symfony/cache version ranges. This is not a feature or security release and requires no code changes, but it confirms the constraint-drift hazard is real rather than theoretical — prior tags could resolve against Symfony versions the maintainer had not validated. Any service already locked to ≤ v1.6.1 should have its composer.lock reviewed.Key questions
json_manifest_path strategy or AssetMapper already satisfy the requirement, making this redundant?Stack fit
json_manifest_path version strategy (Encore) and AssetMapper already deliver content-hash URLs in modern Symfony. This bundle's niche is narrow — Symfony apps without a Node build step and without AssetMapper.asset() / Vite manifest path if cache-busting granularity is the actual goal.Migration path
EmptyVersionStrategy or StaticVersionStrategy: configuration-only swap. All asset URLs change shape, which invalidates every CDN and browser cache entry — schedule accordingly.Compatibility
symfony/asset / symfony/cache versions — the patch may pull different minors than a previously locked install, so treat it as a dependency change, not a no-op.Cache-Control and keep prior deploy artifacts available during rollout windows.assets.version_strategy service — conflicts are silent.Sequencing
composer.lock files for any install at ≤ v1.6.1 and record resolved Symfony versions before upgrading.Maintenance
symfony/asset / symfony/cache constraints still reflect reality — the v1.6.2 fix shows they can silently drift.Support
Scaling
Failure modes
Ramp-up
How can I help you explore Laravel packages today?