diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddCacheClearerPass.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddCacheClearerPass.php index 27b9b465c913c..eea2959247b9a 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddCacheClearerPass.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddCacheClearerPass.php @@ -11,31 +11,21 @@ namespace Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use Symfony\Component\DependencyInjection\Reference; +use Symfony\Component\HttpKernel\DependencyInjection\AddCacheClearerPass as BaseAddCacheClearerPass; + +@trigger_error('The '.AddCacheClearerPass::class.' class is deprecated since version 3.3 and will be removed in 4.0. Use the '.BaseAddCacheClearerPass::class.' class instead.', E_USER_DEPRECATED); /** * Registers the cache clearers. * + * @deprecated This class is deprecated since 3.3, and will be removed in 4.0. Use Symfony\Component\HttpKernel\DependencyInjection\AddCacheClearerPass instead. + * * @author Dustin Dobervich */ -class AddCacheClearerPass implements CompilerPassInterface +class AddCacheClearerPass extends BaseAddCacheClearerPass { - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) + public function __construct() { - if (!$container->hasDefinition('cache_clearer')) { - return; - } - - $clearers = array(); - foreach ($container->findTaggedServiceIds('kernel.cache_clearer') as $id => $attributes) { - $clearers[] = new Reference($id); - } - - $container->getDefinition('cache_clearer')->replaceArgument(0, $clearers); + parent::__construct('cache_clearer', 'kernel.cache_clearer'); } } diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddCacheWarmerPass.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddCacheWarmerPass.php index 8f5353121ce8b..2d66e762e9033 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddCacheWarmerPass.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddCacheWarmerPass.php @@ -11,34 +11,21 @@ namespace Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler; -use Symfony\Component\DependencyInjection\Compiler\PriorityTaggedServiceTrait; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use Symfony\Component\HttpKernel\DependencyInjection\AddCacheWarmerPass as BaseAddCacheWarmerPass; + +@trigger_error('The '.AddCacheWarmerPass::class.' class is deprecated since version 3.3 and will be removed in 4.0. Use the '.BaseAddCacheWarmerPass::class.' class instead.', E_USER_DEPRECATED); /** * Registers the cache warmers. * + * @deprecated This class is deprecated since 3.3, and will be removed in 4.0. Use Symfony\Component\HttpKernel\DependencyInjection\AddCacheWarmerPass instead. + * * @author Fabien Potencier */ -class AddCacheWarmerPass implements CompilerPassInterface +class AddCacheWarmerPass extends BaseAddCacheWarmerPass { - use PriorityTaggedServiceTrait; - - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) + public function __construct() { - if (!$container->hasDefinition('cache_warmer')) { - return; - } - - $warmers = $this->findAndSortTaggedServices('kernel.cache_warmer', $container); - - if (empty($warmers)) { - return; - } - - $container->getDefinition('cache_warmer')->replaceArgument(0, $warmers); + parent::__construct('cache_warmer', 'kernel.cache_warmer'); } } diff --git a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php index fa4951e2da58b..3f22ca1e4402c 100644 --- a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php +++ b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php @@ -23,8 +23,6 @@ use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\ProfilerPass; use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\TranslatorPass; use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\LoggingTranslatorPass; -use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddCacheWarmerPass; -use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddCacheClearerPass; use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddExpressionLanguageProvidersPass; use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\ContainerBuilderDebugDumpPass; use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\CompilerDebugDumpPass; @@ -44,6 +42,8 @@ use Symfony\Component\EventDispatcher\DependencyInjection\RegisterListenersPass; use Symfony\Component\HttpKernel\DependencyInjection\FragmentRendererPass; use Symfony\Component\Form\DependencyInjection\FormPass; +use Symfony\Component\HttpKernel\DependencyInjection\AddCacheWarmerPass; +use Symfony\Component\HttpKernel\DependencyInjection\AddCacheClearerPass; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Bundle\Bundle; use Symfony\Component\Config\Resource\ClassExistenceResource; @@ -88,8 +88,8 @@ public function build(ContainerBuilder $container) $this->addCompilerPassIfExists($container, AddConsoleCommandPass::class); $container->addCompilerPass(new TranslatorPass()); $container->addCompilerPass(new LoggingTranslatorPass()); - $container->addCompilerPass(new AddCacheWarmerPass()); - $container->addCompilerPass(new AddCacheClearerPass()); + $container->addCompilerPass(new AddCacheWarmerPass('cache_warmer', 'kernel.cache_warmer')); + $container->addCompilerPass(new AddCacheClearerPass('cache_clearer', 'kernel.cache_clearer')); $container->addCompilerPass(new AddExpressionLanguageProvidersPass()); $container->addCompilerPass(new TranslationExtractorPass()); $container->addCompilerPass(new TranslationDumperPass()); diff --git a/src/Symfony/Component/HttpKernel/DependencyInjection/AddCacheClearerPass.php b/src/Symfony/Component/HttpKernel/DependencyInjection/AddCacheClearerPass.php new file mode 100644 index 0000000000000..3bbb546c914a0 --- /dev/null +++ b/src/Symfony/Component/HttpKernel/DependencyInjection/AddCacheClearerPass.php @@ -0,0 +1,50 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\HttpKernel\DependencyInjection; + +use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use Symfony\Component\DependencyInjection\Reference; + +/** + * Registers the cache clearers. + * + * @author Dustin Dobervich + */ +class AddCacheClearerPass implements CompilerPassInterface +{ + private $tag; + private $serviceName; + + public function __construct($serviceName, $tag) + { + $this->serviceName = $serviceName; + $this->tag = $tag; + } + + /** + * {@inheritdoc} + */ + public function process(ContainerBuilder $container) + { + if (!$container->hasDefinition($this->serviceName)) { + return; + } + + $clearers = array(); + foreach ($container->findTaggedServiceIds($this->tag) as $id => $attributes) { + $clearers[] = new Reference($id); + } + + $container->getDefinition($this->serviceName)->replaceArgument(0, $clearers); + } +} diff --git a/src/Symfony/Component/HttpKernel/DependencyInjection/AddCacheWarmerPass.php b/src/Symfony/Component/HttpKernel/DependencyInjection/AddCacheWarmerPass.php new file mode 100644 index 0000000000000..9a8cd776725ff --- /dev/null +++ b/src/Symfony/Component/HttpKernel/DependencyInjection/AddCacheWarmerPass.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\HttpKernel\DependencyInjection; + +use Symfony\Component\DependencyInjection\Compiler\PriorityTaggedServiceTrait; +use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; + +/** + * Registers the cache warmers. + * + * @author Fabien Potencier + */ +class AddCacheWarmerPass implements CompilerPassInterface +{ + use PriorityTaggedServiceTrait; + + private $tag; + private $serviceName; + + public function __construct($serviceName, $tag) + { + $this->serviceName = $serviceName; + $this->tag = $tag; + } + + /** + * {@inheritdoc} + */ + public function process(ContainerBuilder $container) + { + if (!$container->hasDefinition($this->serviceName)) { + return; + } + + $warmers = $this->findAndSortTaggedServices($this->tag, $container); + + if (empty($warmers)) { + return; + } + + $container->getDefinition($this->serviceName)->replaceArgument(0, $warmers); + } +} diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/AddCacheWarmerPassTest.php b/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/AddCacheWarmerPassTest.php similarity index 89% rename from src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/AddCacheWarmerPassTest.php rename to src/Symfony/Component/HttpKernel/Tests/DependencyInjection/AddCacheWarmerPassTest.php index 799e516dbca38..ee98530ac4413 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/AddCacheWarmerPassTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/AddCacheWarmerPassTest.php @@ -9,11 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\Compiler; +namespace Symfony\Component\HttpKernel\Tests\DependencyInjection; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\Reference; -use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddCacheWarmerPass; +use Symfony\Component\HttpKernel\DependencyInjection\AddCacheWarmerPass; class AddCacheWarmerPassTest extends TestCase { @@ -48,7 +48,7 @@ public function testThatCacheWarmersAreProcessedInPriorityOrder() new Reference('my_cache_warmer_service3'), )); - $addCacheWarmerPass = new AddCacheWarmerPass(); + $addCacheWarmerPass = new AddCacheWarmerPass('cache_warmer', 'kernel.cache_warmer'); $addCacheWarmerPass->process($container); } @@ -65,7 +65,7 @@ public function testThatCompilerPassIsIgnoredIfThereIsNoCacheWarmerDefinition() ->will($this->returnValue(false)); $definition->expects($this->never())->method('replaceArgument'); - $addCacheWarmerPass = new AddCacheWarmerPass(); + $addCacheWarmerPass = new AddCacheWarmerPass('cache_warmer', 'kernel.cache_warmer'); $addCacheWarmerPass->process($container); } @@ -85,7 +85,7 @@ public function testThatCacheWarmersMightBeNotDefined() $definition->expects($this->never())->method('replaceArgument'); - $addCacheWarmerPass = new AddCacheWarmerPass(); + $addCacheWarmerPass = new AddCacheWarmerPass('cache_warmer', 'kernel.cache_warmer'); $addCacheWarmerPass->process($container); } }