Weave Code
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

Asset Laravel Package

symfony/asset

Symfony Asset Component handles generating URLs for web assets (CSS, JS, images) and managing versioning for cache busting. Works with different base paths/hosts and package setups to produce consistent, deploy-friendly asset links.

View on GitHub
Deep Wiki
Context7

Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files

Frequently asked questions about Asset
How do I integrate Symfony Asset into Laravel for basic CSS/JS URL generation?
Start by requiring the package via Composer (`composer require symfony/asset`), then configure it in `config/asset.php` with your asset paths and versioning strategy. Use `$asset->getUrl('path/to/file.css')` in controllers or create a Blade directive for direct template usage. Example: `@asset('css/app.css')` after defining a custom directive.
Does Symfony Asset work with Laravel Mix or Vite for compiled assets?
Yes, use the `JsonManifestPackage` to integrate with Laravel Mix/Vite’s `mix-manifest.json`. Configure it in `config/asset.php` with the manifest path, and Symfony Asset will generate versioned URLs for compiled assets automatically. No additional setup is needed beyond the basic package configuration.
What versioning strategies does Symfony Asset support for cache busting?
Symfony Asset supports file-based hashing (default), timestamp-based versioning, and custom strategies like Git commit hashes or deployment timestamps. Configure the `version` key in your package settings (e.g., `'version' => 'hash'` or `'version' => 'timestamp'`). For advanced use cases, implement a custom `VersionStrategy` interface.
Can I use Symfony Asset with CDNs or external asset hosts?
Absolutely. Set the `base_url` in your package configuration to your CDN endpoint (e.g., `'base_url' => env('ASSET_CDN_URL')`). For external domains, use the `UrlPackage` to generate absolute URLs directly. This works seamlessly with Laravel’s `.env` for environment-specific configurations.
Will Symfony Asset break existing Laravel asset() or mix() helper usage?
No, Symfony Asset is designed for coexistence. You can gradually migrate to it without replacing existing helpers. For Blade templates, create a custom `@asset()` directive to mirror Laravel’s `asset()` helper syntax. Example: `{{ $asset->getUrl('css/app.css') }}` or `@asset('css/app.css')` via a directive.
How do I handle debug mode (no versioning) in Symfony Asset?
Symfony Asset respects Laravel’s debug mode automatically. Disable versioning in debug by setting `'version' => null` in your package configuration or using the `debug` flag in the `Packages` instance. This ensures assets load without cache-busting queries during development, just like Laravel’s default behavior.
Is Symfony Asset compatible with Laravel 10 and PHP 8.4?
For Laravel 10, use `symfony/asset:^7.4` (PHP 8.1+) or `symfony/asset:^8.0` (PHP 8.4+). The package supports modern Laravel versions with no breaking changes. Check the [Symfony documentation](https://symfony.com/doc/current/components/asset/introduction.html) for version-specific requirements and ensure your `composer.json` constraints align with your Laravel and PHP versions.
How can I extend Symfony Asset for custom versioning (e.g., Git hashes)?
Implement the `VersionStrategy` interface to create a custom versioning strategy. For example, fetch a Git commit hash in your strategy’s `getVersion()` method. Register it in your package configuration under `'version' => YourCustomStrategy::class`. This allows dynamic versioning based on your deployment pipeline or other metadata.
Does Symfony Asset support caching for performance optimization?
Yes, Symfony Asset caches `Packages` instances by default to minimize overhead. For production, configure cache invalidation triggers (e.g., clear cache when assets change) to avoid stale URLs. The component’s benchmarks show <1ms latency per asset in cached mode, making it ideal for high-traffic Laravel applications.
What are the alternatives to Symfony Asset for Laravel asset management?
Laravel’s built-in `asset()` helper and `mix()` function are lightweight but lack advanced features like CDN support or custom versioning. For more control, consider `spatie/laravel-assets` (a Laravel-specific wrapper) or `filp/whoops` (for error pages). However, Symfony Asset offers deeper integration with modern workflows (e.g., Vite, CDNs) and is more extensible for complex setups.
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.
codraw/framework-extra-bundle
codraw/messenger
codraw/security
codraw/mailer
codraw/contracts
codraw/profiling
codraw/dependency-injection
codraw/tester
codraw/core
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony