Merge remote branch 'kriswallsmith/assetic/auto-filters'
* kriswallsmith/assetic/auto-filters: [AsseticBundle] parameter cleanup [AsseticBundle] updated apply_to configuration to accept an array of patterns [AsseticBundle] added configuration for automatically apply filters to assets based on target path
This commit is contained in:
commit
fd3a853597
@ -15,6 +15,7 @@ use Symfony\Component\Config\FileLocator;
|
||||
use Symfony\Component\Config\Definition\Processor;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Definition;
|
||||
use Symfony\Component\DependencyInjection\DefinitionDecorator;
|
||||
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
|
||||
use Symfony\Component\DependencyInjection\Reference;
|
||||
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
|
||||
@ -79,6 +80,23 @@ class AsseticExtension extends Extension
|
||||
unset($filter['file']);
|
||||
}
|
||||
|
||||
if (isset($filter['apply_to'])) {
|
||||
if (!is_array($filter['apply_to'])) {
|
||||
$filter['apply_to'] = array($filter['apply_to']);
|
||||
}
|
||||
|
||||
foreach ($filter['apply_to'] as $i => $pattern) {
|
||||
$worker = new DefinitionDecorator('assetic.worker.ensure_filter');
|
||||
$worker->replaceArgument(0, '/'.$pattern.'/');
|
||||
$worker->replaceArgument(1, new Reference('assetic.filter.'.$name));
|
||||
$worker->addTag('assetic.factory_worker');
|
||||
|
||||
$container->setDefinition('assetic.filter.'.$name.'.worker'.$i, $worker);
|
||||
}
|
||||
|
||||
unset($filter['apply_to']);
|
||||
}
|
||||
|
||||
foreach ($filter as $key => $value) {
|
||||
$container->setParameter('assetic.filter.'.$name.'.'.$key, $value);
|
||||
}
|
||||
|
@ -15,6 +15,7 @@
|
||||
<parameter key="assetic.coalescing_directory_resource.class">Assetic\Factory\Resource\CoalescingDirectoryResource</parameter>
|
||||
<parameter key="assetic.directory_resource.class">Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource</parameter>
|
||||
<parameter key="assetic.filter_manager.class">Symfony\Bundle\AsseticBundle\FilterManager</parameter>
|
||||
<parameter key="assetic.worker.ensure_filter.class">Assetic\Factory\Worker\EnsureFilterWorker</parameter>
|
||||
|
||||
<parameter key="assetic.node.paths" type="collection"></parameter>
|
||||
<parameter key="assetic.cache_dir">%kernel.cache_dir%/assetic</parameter>
|
||||
@ -54,5 +55,10 @@
|
||||
<tag name="kernel.cache_warmer" priority="10" />
|
||||
<argument type="service" id="service_container" />
|
||||
</service>
|
||||
|
||||
<service id="assetic.worker.ensure_filter" class="%assetic.worker.ensure_filter.class%" abstract="true" public="false">
|
||||
<argument /> <!-- pattern -->
|
||||
<argument /> <!-- filter -->
|
||||
</service>
|
||||
</services>
|
||||
</container>
|
||||
|
@ -32,7 +32,8 @@ assetic:
|
||||
inputs: css/widget.sass
|
||||
filters: sass
|
||||
filters:
|
||||
sass: ~
|
||||
sass:
|
||||
apply_to: "\.sass$"
|
||||
yui_css:
|
||||
jar: %kernel.root_dir/java/yui-compressor-2.4.6.jar
|
||||
twig:
|
||||
|
Reference in New Issue
Block a user