8000 [FrameworkBundle] Use `WarmableAggregate` to warm read-only artifacts… · symfony/symfony@9890af2 · GitHub
[go: up one dir, main page]

Skip to content

Commit 9890af2

Browse files
committed
[FrameworkBundle] Use WarmableAggregate to warm read-only artifacts in build_dir
1 parent 26d4e11 commit 9890af2

File tree

6 files changed

+21
-10
lines changed

6 files changed

+21
-10
lines changed

src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ CHANGELOG
44
6.3
55
---
66

7+
* Use `WarmableAggregate` to warm read-only artifacts in `build_dir`
78
* Add `extra` option for `http_client.default_options` and `http_client.scoped_client`
89
* Add `DomCrawlerAssertionsTrait::assertSelectorCount(int $count, string $selector)`
910
* Allow to avoid `limit` definition in a RateLimiter configuration when using the `no_limit` policy

src/Symfony/Bundle/FrameworkBundle/CacheWarmer/ConfigBuilderCacheWarmer.php

+2-7
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@
1818
use Symfony\Component\DependencyInjection\ContainerBuilder;
1919
use Symfony\Component\DependencyInjection\Extension\ConfigurationExtensionInterface;
2020
use Symfony\Component\DependencyInjection\Extension\ExtensionInterface;
21-
use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerInterface;
21+
use Symfony\Component\HttpKernel\CacheWarmer\WarmableInterface;
2222
use Symfony\Component\HttpKernel\KernelInterface;
2323

2424
/**
2525
* Generate all config builders.
2626
*
2727
* @author Tobias Nyholm <tobias.nyholm@gmail.com>
2828
*/
29-
class ConfigBuilderCacheWarmer implements CacheWarmerInterface
29+
class ConfigBuilderCacheWarmer implements WarmableInterface
3030
{
3131
private KernelInterface $kernel;
3232
private ?LoggerInterface $logger;
@@ -76,9 +76,4 @@ private function dumpExtension(ExtensionInterface $extension, ConfigBuilderGener
7676

7777
$generator->build($configuration);
7878
}
79-
80-
public function isOptional(): bool
81-
{
82-
return true;
83-
}
8479
}

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/UnusedTagsPass.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ class UnusedTagsPass implements CompilerPassInterface
2323
{
2424
private const KNOWN_TAGS = [
2525
'annotations.cached_reader',
26-
'assets.package',
2726
'asset_mapper.compiler',
27+
'assets.package',
2828
'auto_alias',
2929
'cache.pool',
3030
'cache.pool.clearer',
@@ -55,6 +55,7 @@ class UnusedTagsPass implements CompilerPassInterface
5555
'form.type_guesser',
5656
'html_sanitizer',
5757
'http_client.client',
58+
'kernel.build_warmer',
5859
'kernel.cache_clearer',
5960
'kernel.cache_warmer',
6061
'kernel.event_listener',

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

+3
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@
9191
use Symfony\Component\HttpKernel\Attribute\AsController;
9292
use Symfony\Component\HttpKernel\Attribute\AsTargetedValueResolver;
9393
use Symfony\Component\HttpKernel\CacheClearer\CacheClearerInterface;
94+
use Symfony\Component\HttpKernel\CacheWarmer\BuildWarmerInterface;
9495
use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerInterface;
9596
use Symfony\Component\HttpKernel\Controller\ArgumentResolver\BackedEnumValueResolver;
9697
use Symfony\Component\HttpKernel\Controller\ArgumentResolver\UidValueResolver;
@@ -610,6 +611,8 @@ public function load(array $configs, ContainerBuilder $container)
610611
->addTag('form.type_extension');
611612
$container->registerForAutoconfiguration(CacheClearerInterface::class)
612613
->addTag('kernel.cache_clearer');
614+
$container->registerForAutoconfiguration(BuildWarmerInterface::class)
615+
->addTag('kernel.build_warmer');
613616
$container->registerForAutoconfiguration(CacheWarmerInterface::class)
614617
->addTag('kernel.cache_warmer');
615618
$container->registerForAutoconfiguration(EventDispatcherInterface::class)

src/Symfony/Bundle/FrameworkBundle/Resources/config/services.php

+11-1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
use Symfony\Component\HttpFoundation\UrlHelper;
3939
use Symfony\Component\HttpKernel\CacheClearer\ChainCacheClearer;
4040
use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate;
41+
use Symfony\Component\HttpKernel\CacheWarmer\WarmableAggregate;
4142
use Symfony\Component\HttpKernel\Config\FileLocator;
4243
use Symfony\Component\HttpKernel\DependencyInjection\ServicesResetter;
4344
use Symfony\Component\HttpKernel\EventListener\LocaleAwareListener;
@@ -124,6 +125,15 @@ class_exists(WorkflowEvents::class) ? WorkflowEvents::ALIASES : []
124125
])
125126
->alias(UrlHelper::class, 'url_helper')
126127

128+
->set('build_warmer', WarmableAggregate::class)
129+
->public()
130+
->args([
131+
tagged_iterator('kernel.build_warmer'),
132+
param('kernel.debug'),
133+
sprintf('%s/%sDeprecations.log', param('kernel.build_dir'), param('kernel.container_class')),
134+
])
135+
->tag('container.no_preload')
136+
127137
->set('cache_warmer', CacheWarmerAggregate::class)
128138
->public()
129139
->args([
@@ -227,7 +237,7 @@ class_exists(WorkflowEvents::class) ? WorkflowEvents::ALIASES : []
227237
])
228238
->set('config_builder.warmer', ConfigBuilderCacheWarmer::class)
229239
->args([service(KernelInterface::class), service('logger')->nullOnInvalid()])
230-
->tag('kernel.cache_warmer')
240+
->tag('kernel.build_warmer')
231241

232242
->set('clock', Clock::class)
233243
->alias(ClockInterface::class, 'clock')

src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ContainerDebugCommandTest.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -128,10 +128,11 @@ public function testTagsPartialSearch()
128128
$this->assertStringContainsString('Select one of the following tags to display its information', $tester->getDisplay());
129129
$this->assertStringContainsString('[0] kernel.event_subscriber', $tester->getDisplay());
130130
$this->assertStringContainsString('[1] kernel.locale_aware', $tester->getDisplay());
131-
$this->assertStringContainsString('[2] kernel.cache_warmer', $tester->getDisplay());
131+
$this->assertStringContainsString('[2] kernel.build_warmer', $tester->getDisplay());
132132
$this->assertStringContainsString('[3] kernel.fragment_renderer', $tester->getDisplay());
133133
$this->assertStringContainsString('[4] kernel.reset', $tester->getDisplay());
134134
$this->assertStringContainsString('[5] kernel.cache_clearer', $tester->getDisplay());
135+
$this->assertStringContainsString('[6] kernel.cache_warmer', $tester->getDisplay());
135136
$this->assertStringContainsString('Symfony Container Services Tagged with "kernel.event_subscriber" Tag', $tester->getDisplay());
136137
}
137138

0 commit comments

Comments
 (0)
0