Installation Add the package via Composer:
composer require brunschgi/terrific-core-bundle:1.0.*
Register the bundle in AppKernel.php:
$bundles[] = new Beatgeb\TerrificCoreBundle\TerrificCoreBundle();
First Use Case
The bundle provides Assetic filters for Terrific-specific optimizations (e.g., CSS/JS minification, source maps). Start by configuring Assetic in config.yml:
assetic:
filters:
terrific_css:
class: Beatgeb\TerrificCoreBundle\Assetic\Filter\TerrificCssFilter
terrific_js:
class: Beatgeb\TerrificCoreBundle\Assetic\Filter\TerrificJsFilter
Key Files to Review
src/Beatgeb/TerrificCoreBundle/Resources/config/services.yml (for service definitions).src/Beatgeb/TerrificCoreBundle/Assetic/ (custom Assetic filters).Frontend Asset Pipeline
Use the bundle’s Assetic filters to process Terrific-specific assets (e.g., .terrific.css or .terrific.js files):
{% stylesheets [
'bundles/terrificcore/css/app.terrific.css'
] output='css/app.css' filter='terrific_css' %}
<link rel="stylesheet" href="{{ asset_url }}">
{% endstylesheets %}
Integration with TerrificComposerBundle
Pair with TerrificComposerBundle for dependency management (e.g., Bower/npm packages):
composer require brunschgi/terrific-composer-bundle
Configure in config.yml:
terrific_composer:
bower_components: "%kernel.root_dir%/../web/bower_components"
npm_packages: "%kernel.root_dir%/../web/node_modules"
Custom Filters
Extend existing filters by subclassing Beatgeb\TerrificCoreBundle\Assetic\Filter\AbstractTerrificFilter:
namespace AppBundle\Assetic\Filter;
use Beatgeb\TerrificCoreBundle\Assetic\Filter\AbstractTerrificFilter;
class CustomTerrificFilter extends AbstractTerrificFilter {
protected function filterLoad() { /* Custom logic */ }
}
Register in config.yml:
assetic:
filters:
custom_terrific:
class: AppBundle\Assetic\Filter\CustomTerrificFilter
Outdated Codebase
symfony/assetic-bundle) if needed.Assetic Configuration Conflicts
terrific_* filters are last in the chain to avoid override issues:
assetic:
filters:
- cssrewrite
- terrific_css # Place after core filters
Terrific-Specific File Extensions
.terrific.css/.terrific.js to trigger filters. Rename or alias existing files:
{% set cssFile = 'styles.css'|replace('.css', '.terrific.css') %}
config.yml to inspect filter output:
assetic:
debug: true
AbstractTerrificFilter:
public function filterLoad() {
$this->log('Processing Terrific asset: ' . $this->getPath());
}
Custom Asset Directories
Override default paths in config.yml:
terrific_core:
asset_dirs:
css: "%kernel.root_dir%/../web/terrific/css"
js: "%kernel.root_dir%/../web/terrific/js"
Source Maps Enable via Assetic configuration:
assetic:
use_controller: true
filters:
terrific_css:
options:
source_map: true
Symfony 4/5 Compatibility
auto-wiring in config/packages/assetic.yaml:
assetic:
filters:
terrific_css:
class: Beatgeb\TerrificCoreBundle\Assetic\Filter\TerrificCssFilter
arguments: []
tags: ['assetic.filter']
How can I help you explore Laravel packages today?