This is an integration library of Twig and Assetic works for Silex.
The original Twig extension of Assetic is not easy to use. There's a lot of work (code) to do and you need always to know which templates require assets.
This integration library will handle it automatically.
Add in your composer.json
with following require entry:
{
"require": {
"wake/Silex-Twig-Assetic-Integration-Provider": "*"
}
}
or using composer:
$ composer require wake/Silex-Twig-Assetic-Integration-Provider:*
then run composer install
or composer update
.
$app->register (new Silex\Provider\TwigAsseticIntegrationProvider (), array (
'assetic.asset.root' => 'your_asset_files_root',
'assetic.asset.output_root' => 'your_asset_output_root',
'assetic.debug' => false,
'assetic.filter' => array (
'sass' => new \Assetic\Filter\SassFilter ('/path/to/parser/sass'),
'yui_css' => new \Assetic\Filter\Yui\CssCompressorFilter ('/path/to/yuicompressor.jar')
)
));
Important: Make sure you are using TwigServiceProvider and have registered before this code. It override some Twig loaders to force it expode some template information.
Just as Assetic twig extension
{% stylesheets '/path/to/sass/main.sass' filter='sass,?yui_css' output='css/all.css' %}
<link href="{{ asset_url }}" type="text/css" rel="stylesheet" />
{% endstylesheets %}
Twig Assetic Integration Provider provides Assetic filters auto detecting as below list:
- Description: Minifies CSS
- Filter name:
cssmin
- Requirement: natxet/CssMin
- Description: Fixes relative URLs in CSS assets when moving to a new URL
- Filter name:
cssrewrite
Please feel free to open an issue and let me know if there is any thoughts or questions 😃
Released under the MIT license