From 98ff750ee148a1c44032b67a669c9752930a28b9 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Wed, 10 Oct 2018 07:41:53 -0700 Subject: [PATCH] [HttpKernel] deprecated the Kernel name --- .../AbstractDoctrineExtension.php | 2 +- .../DoctrineExtensionTest.php | 2 +- .../FrameworkBundle/Command/AboutCommand.php | 1 - .../FrameworkBundle/Console/Application.php | 2 +- .../Compiler/CachePoolClearerPassTest.php | 2 +- .../Compiler/CachePoolPassTest.php | 10 ++++---- .../Tests/Functional/app/AppKernel.php | 8 ++----- .../views/Collector/config.html.twig | 7 ------ .../DependencyInjection/CachePoolPass.php | 2 +- .../CachePoolClearerPassTest.php | 2 +- .../DependencyInjection/CachePoolPassTest.php | 10 ++++---- src/Symfony/Component/HttpKernel/CHANGELOG.md | 5 ++++ .../DataCollector/ConfigDataCollector.php | 4 +++- src/Symfony/Component/HttpKernel/Kernel.php | 16 ++++++++++--- .../Component/HttpKernel/KernelInterface.php | 2 ++ .../DataCollector/ConfigDataCollectorTest.php | 2 +- .../Component/HttpKernel/Tests/KernelTest.php | 24 +++++++++++++++---- 17 files changed, 61 insertions(+), 40 deletions(-) diff --git a/src/Symfony/Bridge/Doctrine/DependencyInjection/AbstractDoctrineExtension.php b/src/Symfony/Bridge/Doctrine/DependencyInjection/AbstractDoctrineExtension.php index 5b0f2ddbe3..b2891b4afa 100644 --- a/src/Symfony/Bridge/Doctrine/DependencyInjection/AbstractDoctrineExtension.php +++ b/src/Symfony/Bridge/Doctrine/DependencyInjection/AbstractDoctrineExtension.php @@ -367,7 +367,7 @@ abstract class AbstractDoctrineExtension extends Extension } else { $seed = '_'.$container->getParameter('kernel.root_dir'); } - $seed .= '.'.$container->getParameter('kernel.name').'.'.$container->getParameter('kernel.environment').'.'.$container->getParameter('kernel.debug'); + $seed .= '.'.$container->getParameter('kernel.container_class').'.'.$container->getParameter('kernel.environment').'.'.$container->getParameter('kernel.debug'); $namespace = 'sf_'.$this->getMappingResourceExtension().'_'.$objectManagerName.'_'.ContainerBuilder::hash($seed); $cacheDriver['namespace'] = $namespace; diff --git a/src/Symfony/Bridge/Doctrine/Tests/DependencyInjection/DoctrineExtensionTest.php b/src/Symfony/Bridge/Doctrine/Tests/DependencyInjection/DoctrineExtensionTest.php index 008cbd987d..5d4d1ee48c 100644 --- a/src/Symfony/Bridge/Doctrine/Tests/DependencyInjection/DoctrineExtensionTest.php +++ b/src/Symfony/Bridge/Doctrine/Tests/DependencyInjection/DoctrineExtensionTest.php @@ -271,7 +271,7 @@ class DoctrineExtensionTest extends TestCase 'kernel.cache_dir' => __DIR__, 'kernel.debug' => false, 'kernel.environment' => 'test', - 'kernel.name' => 'kernel', + 'kernel.container_class' => 'kernel', 'kernel.root_dir' => __DIR__, ), $data))); } diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/AboutCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/AboutCommand.php index 930de24466..4128f57e13 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/AboutCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/AboutCommand.php @@ -71,7 +71,6 @@ EOT array('Kernel'), new TableSeparator(), array('Type', \get_class($kernel)), - array('Name', $kernel->getName()), array('Environment', $kernel->getEnvironment()), array('Debug', $kernel->isDebug() ? 'true' : 'false'), array('Charset', $kernel->getCharset()), diff --git a/src/Symfony/Bundle/FrameworkBundle/Console/Application.php b/src/Symfony/Bundle/FrameworkBundle/Console/Application.php index be733f995c..1246f37b09 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Console/Application.php +++ b/src/Symfony/Bundle/FrameworkBundle/Console/Application.php @@ -148,7 +148,7 @@ class Application extends BaseApplication */ public function getLongVersion() { - return parent::getLongVersion().sprintf(' (kernel: %s, env: %s, debug: %s)', $this->kernel->getName(), $this->kernel->getEnvironment(), $this->kernel->isDebug() ? 'true' : 'false'); + return parent::getLongVersion().sprintf(' (env: %s, debug: %s)', $this->kernel->getEnvironment(), $this->kernel->isDebug() ? 'true' : 'false'); } public function add(Command $command) diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/CachePoolClearerPassTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/CachePoolClearerPassTest.php index 7e5dad6fa4..69aea35439 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/CachePoolClearerPassTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/CachePoolClearerPassTest.php @@ -30,7 +30,7 @@ class CachePoolClearerPassTest extends TestCase { $container = new ContainerBuilder(); $container->setParameter('kernel.debug', false); - $container->setParameter('kernel.name', 'app'); + $container->setParameter('kernel.container_class', 'app'); $container->setParameter('kernel.environment', 'prod'); $container->setParameter('kernel.root_dir', 'foo'); diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/CachePoolPassTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/CachePoolPassTest.php index 7c3337f9e4..d1f594f290 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/CachePoolPassTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/CachePoolPassTest.php @@ -35,7 +35,7 @@ class CachePoolPassTest extends TestCase { $container = new ContainerBuilder(); $container->setParameter('kernel.debug', false); - $container->setParameter('kernel.name', 'app'); + $container->setParameter('kernel.container_class', 'app'); $container->setParameter('kernel.environment', 'prod'); $container->setParameter('kernel.root_dir', 'foo'); $adapter = new Definition(); @@ -57,7 +57,7 @@ class CachePoolPassTest extends TestCase { $container = new ContainerBuilder(); $container->setParameter('kernel.environment', 'prod'); - $container->setParameter('kernel.name', 'app'); + $container->setParameter('kernel.container_class', 'app'); $container->setParameter('kernel.root_dir', 'foo'); $container->register('cache.adapter.array', ArrayAdapter::class)->addArgument(0); @@ -75,7 +75,7 @@ class CachePoolPassTest extends TestCase { $container = new ContainerBuilder(); $container->setParameter('kernel.debug', false); - $container->setParameter('kernel.name', 'app'); + $container->setParameter('kernel.container_class', 'app'); $container->setParameter('kernel.environment', 'prod'); $container->setParameter('cache.prefix.seed', 'foo'); $cachePool = new Definition(); @@ -100,7 +100,7 @@ class CachePoolPassTest extends TestCase { $container = new ContainerBuilder(); $container->setParameter('kernel.debug', false); - $container->setParameter('kernel.name', 'app'); + $container->setParameter('kernel.container_class', 'app'); $container->setParameter('kernel.environment', 'prod'); $container->setParameter('cache.prefix.seed', 'foo'); $cachePool = new Definition(); @@ -126,7 +126,7 @@ class CachePoolPassTest extends TestCase { $container = new ContainerBuilder(); $container->setParameter('kernel.debug', false); - $container->setParameter('kernel.name', 'app'); + $container->setParameter('kernel.container_class', 'app'); $container->setParameter('kernel.environment', 'prod'); $container->setParameter('kernel.root_dir', 'foo'); $adapter = new Definition(); diff --git a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AppKernel.php b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AppKernel.php index 1aab514f45..00f9e371d0 100644 --- a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AppKernel.php +++ b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AppKernel.php @@ -46,13 +46,9 @@ class AppKernel extends Kernel /** * {@inheritdoc} */ - public function getName() + public function getContainerClass() { - if (null === $this->name) { - $this->name = parent::getName().substr(md5($this->rootConfig), -16); - } - - return $this->name; + return parent::getContainerClass().substr(md5($this->rootConfig), -16); } public function registerBundles() diff --git a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/config.html.twig b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/config.html.twig index 6e5b9608b4..c6d49f0208 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/config.html.twig +++ b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/config.html.twig @@ -50,13 +50,6 @@ - {% if 'n/a' is not same as(collector.appname) %} -
- Kernel name - {{ collector.appname }} -
- {% endif %} - {% if 'n/a' is not same as(collector.env) %}
Environment diff --git a/src/Symfony/Component/Cache/DependencyInjection/CachePoolPass.php b/src/Symfony/Component/Cache/DependencyInjection/CachePoolPass.php index b04c47dea1..51d21639ec 100644 --- a/src/Symfony/Component/Cache/DependencyInjection/CachePoolPass.php +++ b/src/Symfony/Component/Cache/DependencyInjection/CachePoolPass.php @@ -52,7 +52,7 @@ class CachePoolPass implements CompilerPassInterface } else { $seed = '_'.$container->getParameter('kernel.root_dir'); } - $seed .= '.'.$container->getParameter('kernel.name').'.'.$container->getParameter('kernel.environment'); + $seed .= '.'.$container->getParameter('kernel.container_class').'.'.$container->getParameter('kernel.environment'); $pools = array(); $clearers = array(); diff --git a/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolClearerPassTest.php b/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolClearerPassTest.php index 3d151e1062..9ce46f9d14 100644 --- a/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolClearerPassTest.php +++ b/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolClearerPassTest.php @@ -27,7 +27,7 @@ class CachePoolClearerPassTest extends TestCase { $container = new ContainerBuilder(); $container->setParameter('kernel.debug', false); - $container->setParameter('kernel.name', 'app'); + $container->setParameter('kernel.container_class', 'app'); $container->setParameter('kernel.environment', 'prod'); $container->setParameter('kernel.root_dir', 'foo'); diff --git a/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolPassTest.php b/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolPassTest.php index 4054c20df9..5890c57e94 100644 --- a/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolPassTest.php +++ b/src/Symfony/Component/Cache/Tests/DependencyInjection/CachePoolPassTest.php @@ -32,7 +32,7 @@ class CachePoolPassTest extends TestCase { $container = new ContainerBuilder(); $container->setParameter('kernel.debug', false); - $container->setParameter('kernel.name', 'app'); + $container->setParameter('kernel.container_class', 'app'); $container->setParameter('kernel.environment', 'prod'); $container->setParameter('kernel.root_dir', 'foo'); $adapter = new Definition(); @@ -54,7 +54,7 @@ class CachePoolPassTest extends TestCase { $container = new ContainerBuilder(); $container->setParameter('kernel.environment', 'prod'); - $container->setParameter('kernel.name', 'app'); + $container->setParameter('kernel.container_class', 'app'); $container->setParameter('kernel.root_dir', 'foo'); $container->register('cache.adapter.array', ArrayAdapter::class)->addArgument(0); @@ -72,7 +72,7 @@ class CachePoolPassTest extends TestCase { $container = new ContainerBuilder(); $container->setParameter('kernel.debug', false); - $container->setParameter('kernel.name', 'app'); + $container->setParameter('kernel.container_class', 'app'); $container->setParameter('kernel.environment', 'prod'); $container->setParameter('cache.prefix.seed', 'foo'); $cachePool = new Definition(); @@ -97,7 +97,7 @@ class CachePoolPassTest extends TestCase { $container = new ContainerBuilder(); $container->setParameter('kernel.debug', false); - $container->setParameter('kernel.name', 'app'); + $container->setParameter('kernel.container_class', 'app'); $container->setParameter('kernel.environment', 'prod'); $container->setParameter('cache.prefix.seed', 'foo'); $cachePool = new Definition(); @@ -123,7 +123,7 @@ class CachePoolPassTest extends TestCase { $container = new ContainerBuilder(); $container->setParameter('kernel.debug', false); - $container->setParameter('kernel.name', 'app'); + $container->setParameter('kernel.container_class', 'app'); $container->setParameter('kernel.environment', 'prod'); $container->setParameter('kernel.root_dir', 'foo'); $adapter = new Definition(); diff --git a/src/Symfony/Component/HttpKernel/CHANGELOG.md b/src/Symfony/Component/HttpKernel/CHANGELOG.md index c98d2235e3..41590f7368 100644 --- a/src/Symfony/Component/HttpKernel/CHANGELOG.md +++ b/src/Symfony/Component/HttpKernel/CHANGELOG.md @@ -1,6 +1,11 @@ CHANGELOG ========= +4.2.0 +----- + + * deprecated `KernelInterface::getName()` and the `kernel.name` parameter + 4.1.0 ----- diff --git a/src/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php b/src/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php index 76ad4a8c88..3343042481 100644 --- a/src/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php +++ b/src/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php @@ -60,7 +60,7 @@ class ConfigDataCollector extends DataCollector implements LateDataCollectorInte 'token' => $response->headers->get('X-Debug-Token'), 'symfony_version' => Kernel::VERSION, 'symfony_state' => 'unknown', - 'name' => isset($this->kernel) ? $this->kernel->getName() : 'n/a', + 'name' => 'n/a', 'env' => isset($this->kernel) ? $this->kernel->getEnvironment() : 'n/a', 'debug' => isset($this->kernel) ? $this->kernel->isDebug() : 'n/a', 'php_version' => PHP_VERSION, @@ -227,6 +227,8 @@ class ConfigDataCollector extends DataCollector implements LateDataCollectorInte * Gets the application name. * * @return string The application name + * + * @deprecated since Symfony 4.2 */ public function getAppName() { diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index 3c1d257494..c55c0ddaf9 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -55,6 +55,9 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl protected $environment; protected $debug; protected $booted = false; + /** + * @deprecated since Symfony 4.2 + */ protected $name; protected $startTime; @@ -78,7 +81,7 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl $this->environment = $environment; $this->debug = $debug; $this->rootDir = $this->getRootDir(); - $this->name = $this->getName(); + $this->name = $this->getName(false); } public function __clone() @@ -268,8 +271,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl /** * {@inheritdoc} */ - public function getName() + public function getName(/* $triggerDeprecation = true */) { + if (0 === \func_num_args() || func_get_arg(0)) { + @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.2.', __METHOD__), E_USER_DEPRECATED); + } + if (null === $this->name) { $this->name = preg_replace('/[^a-zA-Z0-9_]+/', '', basename($this->rootDir)); if (ctype_digit($this->name[0])) { @@ -421,7 +428,7 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl */ protected function getContainerClass() { - return $this->name.ucfirst($this->environment).($this->debug ? 'Debug' : '').'ProjectContainer'; + return str_replace('\\', '_', \get_class($this)).ucfirst($this->environment).($this->debug ? 'Debug' : '').'Container'; } /** @@ -576,6 +583,9 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl 'kernel.project_dir' => realpath($this->getProjectDir()) ?: $this->getProjectDir(), 'kernel.environment' => $this->environment, 'kernel.debug' => $this->debug, + /* + * @deprecated since Symfony 4.2 + */ 'kernel.name' => $this->name, 'kernel.cache_dir' => realpath($cacheDir = $this->warmupDir ?: $this->getCacheDir()) ?: $cacheDir, 'kernel.logs_dir' => realpath($this->getLogDir()) ?: $this->getLogDir(), diff --git a/src/Symfony/Component/HttpKernel/KernelInterface.php b/src/Symfony/Component/HttpKernel/KernelInterface.php index 485f3bf842..6d04c62578 100644 --- a/src/Symfony/Component/HttpKernel/KernelInterface.php +++ b/src/Symfony/Component/HttpKernel/KernelInterface.php @@ -100,6 +100,8 @@ interface KernelInterface extends HttpKernelInterface, \Serializable * Gets the name of the kernel. * * @return string The kernel name + * + * @deprecated since Symfony 4.2 */ public function getName(); diff --git a/src/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php b/src/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php index a99e34ad42..b54af42d7d 100644 --- a/src/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php @@ -30,7 +30,7 @@ class ConfigDataCollectorTest extends TestCase $this->assertSame('test', $c->getEnv()); $this->assertTrue($c->isDebug()); $this->assertSame('config', $c->getName()); - $this->assertSame('testkernel', $c->getAppName()); + $this->assertSame('n/a', $c->getAppName()); $this->assertRegExp('~^'.preg_quote($c->getPhpVersion(), '~').'~', PHP_VERSION); $this->assertRegExp('~'.preg_quote((string) $c->getPhpVersionExtra(), '~').'$~', PHP_VERSION); $this->assertSame(PHP_INT_SIZE * 8, $c->getPhpArchitecture()); diff --git a/src/Symfony/Component/HttpKernel/Tests/KernelTest.php b/src/Symfony/Component/HttpKernel/Tests/KernelTest.php index 8926f20878..56d18e24d7 100644 --- a/src/Symfony/Component/HttpKernel/Tests/KernelTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/KernelTest.php @@ -75,7 +75,7 @@ class KernelTest extends TestCase $kernel->boot(); $containerDir = __DIR__.'/Fixtures/cache/custom/'.substr(\get_class($kernel->getContainer()), 0, 16); - $this->assertTrue(unlink(__DIR__.'/Fixtures/cache/custom/FixturesCustomDebugProjectContainer.php.meta')); + $this->assertTrue(unlink(__DIR__.'/Fixtures/cache/custom/FixturesSymfony_Component_HttpKernel_Tests_CustomProjectDirKernelCustomDebugContainer.php.meta')); $this->assertFileExists($containerDir); $this->assertFileNotExists($containerDir.'.legacy'); @@ -302,6 +302,9 @@ EOF; $this->assertEquals(__DIR__.\DIRECTORY_SEPARATOR.'Fixtures', realpath($kernel->getRootDir())); } + /** + * @group legacy + */ public function testGetName() { $kernel = new KernelForTest('test', true); @@ -309,6 +312,9 @@ EOF; $this->assertEquals('Fixtures', $kernel->getName()); } + /** + * @group legacy + */ public function testOverrideGetName() { $kernel = new KernelForOverrideName('test', true); @@ -506,6 +512,9 @@ EOF; $this->assertTrue($kernel->getContainer()->getParameter('test_executed')); } + /** + * @group legacy + */ public function testKernelRootDirNameStartingWithANumber() { $dir = __DIR__.'/Fixtures/123'; @@ -532,14 +541,14 @@ EOF; $containerClass = \get_class($kernel->getContainer()); $containerFile = (new \ReflectionClass($kernel->getContainer()))->getFileName(); - unlink(__DIR__.'/Fixtures/cache/custom/FixturesCustomDebugProjectContainer.php.meta'); + unlink(__DIR__.'/Fixtures/cache/custom/FixturesSymfony_Component_HttpKernel_Tests_CustomProjectDirKernelCustomDebugContainer.php.meta'); $kernel = new CustomProjectDirKernel(); $kernel->boot(); $this->assertInstanceOf($containerClass, $kernel->getContainer()); $this->assertFileExists($containerFile); - unlink(__DIR__.'/Fixtures/cache/custom/FixturesCustomDebugProjectContainer.php.meta'); + unlink(__DIR__.'/Fixtures/cache/custom/FixturesSymfony_Component_HttpKernel_Tests_CustomProjectDirKernelCustomDebugContainer.php.meta'); $kernel = new CustomProjectDirKernel(function ($container) { $container->register('foo', 'stdClass')->setPublic(true); }); $kernel->boot(); @@ -707,9 +716,9 @@ class CustomProjectDirKernel extends Kernel private $buildContainer; private $httpKernel; - public function __construct(\Closure $buildContainer = null, HttpKernelInterface $httpKernel = null, $name = 'custom') + public function __construct(\Closure $buildContainer = null, HttpKernelInterface $httpKernel = null, $env = 'custom') { - parent::__construct($name, true); + parent::__construct($env, true); $this->baseDir = 'foo'; $this->buildContainer = $buildContainer; @@ -725,6 +734,11 @@ class CustomProjectDirKernel extends Kernel { } + protected function getContainerClass() + { + return $this->name.parent::getContainerClass(); + } + public function getProjectDir() { return $this->baseDir;