Installation
Add the bundle to your composer.json:
composer require bonami-cz/assetic-bundle
Enable it in config/bundles.php:
Bonami\AsseticBundle\BonamiAsseticBundle::class => ['all' => true],
Basic Configuration
Configure Assetic in config/packages/bonami_assetic.yaml:
bonami_assetic:
assets:
app:
inputs:
- '%kernel.project_dir%/public/css/app.css'
filters:
- cssrewrite
- yui_css
bundles:
- FOSJsRoutingBundle
First Use Case Dump assets via CLI:
php bin/console assetic:dump --env=prod --no-debug
Use in Twig:
{% javascripts 'bundles/app/js/*.js' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
Development vs. Production
Use --env=dev for live-reload (no dumping) and --env=prod for optimized assets.
# Dev (watch mode)
php bin/console assetic:watch --env=dev
# Prod (dump optimized)
php bin/console assetic:dump --env=prod
Bundle-Specific Assets
Define assets per bundle in config/packages/bonami_assetic.yaml:
bonami_assetic:
assets:
admin:
inputs: ['@AdminBundle/Resources/public/css/*.css']
filters: [cssrewrite]
Twig Integration Extend Twig with custom filters:
{% assets 'app' %}
{% filter yui_css %}
{{ parent() }}
{% endfilter %}
{% endassets %}
Symfony Flex Compatibility
Override default config via config/packages/bonami_assetic.yaml (no XML/YAML overrides needed).
Caching Issues Clear cache after config changes:
php bin/console cache:clear
php bin/console assetic:dump
Filter Order Matters
Filters execute in declaration order. Reorder in config if dependencies exist (e.g., yui_css before cssrewrite).
Debug Mode Conflicts
Avoid mixing assetic:dump with --no-debug in dev. Use assetic:watch instead.
Asset Not Found?
Verify inputs paths are correct (use absolute paths or @Bundle/Resources/public).
inputs:
- '%kernel.project_dir%/public/css/app.css' # Absolute
- '@AppBundle/Resources/public/css/*.css' # Relative to bundle
Filter Errors
Check filter class existence (e.g., yui_css requires Assetic\Filter\YuiCss2Filter).
Custom Filters
Register filters in config/packages/bonami_assetic.yaml:
bonami_assetic:
filters:
custom_filter:
class: App\Filter\CustomFilter
priority: 100
Event Listeners
Hook into assetic.on_dump or assetic.on_update via Symfony events:
// src/EventListener/AsseticListener.php
public function onDump(AsseticEvent $event) {
$event->setAssets($this->modifyAssets($event->getAssets()));
}
Environment-Specific Config
Use %kernel.environment% to split configs:
# config/packages/bonami_assetic_{env}.yaml
bonami_assetic:
assets:
app:
filters: [debug] # Only in dev
How can I help you explore Laravel packages today?