8000 Merge remote branch 'kriswallsmith/assetic/auto-filters' · qcho/symfony@fd3a853 · GitHub
[go: up one dir, main page]

Skip to content

Commit fd3a853

Browse files
committed
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
2 parents 78452bb + 09a60c2 commit fd3a853

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

src/Symfony/Bundle/AsseticBundle/DependencyInjection/AsseticExtension.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use Symfony\Component\Config\Definition\Processor;
1616
use Symfony\Component\DependencyInjection\ContainerBuilder;
1717
use Symfony\Component\DependencyInjection\Definition;
18+
use Symfony\Component\DependencyInjection\ 8000 DefinitionDecorator;
1819
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
1920
use Symfony\Component\DependencyInjection\Reference;
2021
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
@@ -79,6 +80,23 @@ public function load(array $configs, ContainerBuilder $container)
7980
unset($filter['file']);
8081
}
8182

83+
if (isset($filter['apply_to'])) {
84+
if (!is_array($filter['apply_to'])) {
85+
$filter['apply_to'] = array($filter['apply_to']);
86+
}
87+
88+
foreach ($filter['apply_to'] as $i => $pattern) {
89+
$worker = new DefinitionDecorator('assetic.worker.ensure_filter');
90+
$worker->replaceArgument(0, '/'.$pattern.'/');
91+
$worker->replaceArgument(1, new Reference('assetic.filter.'.$name));
92+
$worker->addTag('assetic.factory_worker');
93+
94+
$container->setDefinition('assetic.filter.'.$name.'.worker'.$i, $worker);
95+
}
96+
97+
unset($filter['apply_to']);
98+
}
99+
82100
foreach ($filter as $key => $value) {
83101
$container->setParameter('assetic.filter.'.$name.'.'.$key, $value);
84102
}

src/Symfony/Bundle/AsseticBundle/Resources/config/assetic.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
<parameter key="assetic.coalescing_directory_resource.class">Assetic\Factory\Resource\CoalescingDirectoryResource</parameter>
1616
<parameter key="assetic.directory_resource.class">Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource</parameter>
1717
<parameter key="assetic.filter_manager.class">Symfony\Bundle\AsseticBundle\FilterManager</parameter>
18+
<parameter key="assetic.worker.ensure_filter.class">Assetic\Factory\Worker\EnsureFilterWorker</parameter>
1819

1920
<parameter key="assetic.node.paths" type="collection"></parameter>
2021
<parameter key="assetic.cache_dir">%kernel.cache_dir%/assetic</parameter>
@@ -54,5 +55,10 @@
5455
<tag name="kernel.cache_warmer" priority="10" />
5556
<argument type="service" id="service_container" />
5657
</service>
58+
59+
<service id="assetic.worker.ensure_filter" class="%assetic.worker.ensure_filter.class%" abstract="true" public="false">
60+
<argument /> <!-- pattern -->
61+
<argument /> <!-- filter -->
62+
</service>
5763
</services>
5864
</container>

src/Symfony/Bundle/AsseticBundle/Tests/Resources/config/config.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ assetic:
3232
inputs: css/widget.sass
3333
filters: sass
3434
filters:
35-
sass: ~
35+
sass:
36+
apply_to: "\.sass$"
3637
yui_css:
3738
jar: %kernel.root_dir/java/yui-compressor-2.4.6.jar
3839
twig:

0 commit comments

Comments
 (0)
0