diff --git a/core/includes/common.inc b/core/includes/common.inc
index 04324f60fcf27bc19720b3d709e8cd7faa959118..ffdd3fa2cf370d4ba7716d7c531a040f393f46c0 100644
--- a/core/includes/common.inc
+++ b/core/includes/common.inc
@@ -17,6 +17,7 @@
 use Drupal\Core\Render\Element\Link;
 use Drupal\Core\Render\Markup;
 use Drupal\Core\StringTranslation\TranslatableMarkup;
+use Drupal\Core\PhpStorage\PhpStorageFactory;
 use Drupal\Core\StringTranslation\PluralTranslatableMarkup;
 use Drupal\Core\Render\BubbleableMetadata;
 use Drupal\Core\Render\Element;
@@ -1116,7 +1117,7 @@ function drupal_flush_all_caches() {
   \Drupal::service('kernel')->invalidateContainer();
 
   // Wipe the Twig PHP Storage cache.
-  \Drupal::service('twig')->invalidate();
+  PhpStorageFactory::get('twig')->deleteAll();
 
   // Rebuild module and theme data.
   $module_data = system_rebuild_module_data();
diff --git a/core/includes/utility.inc b/core/includes/utility.inc
index 52c3699275ccd5b283a4f577042658d3b273051f..70d74a1ef5ee6fc3d7659586060573e0a72b3e34 100644
--- a/core/includes/utility.inc
+++ b/core/includes/utility.inc
@@ -5,6 +5,7 @@
  * Miscellaneous functions.
  */
 
+use Drupal\Core\PhpStorage\PhpStorageFactory;
 use Drupal\Core\Cache\Cache;
 use Drupal\Core\DrupalKernel;
 use Symfony\Component\HttpFoundation\Request;
@@ -29,7 +30,7 @@ function drupal_rebuild($class_loader, Request $request) {
   restore_exception_handler();
 
   // Force kernel to rebuild php cache.
-  \Drupal::service('twig')->invalidate();
+  PhpStorageFactory::get('twig')->deleteAll();
 
   // Bootstrap up to where caches exist and clear them.
   $kernel = new DrupalKernel('prod', $class_loader);
diff --git a/core/lib/Drupal/Core/Template/TwigEnvironment.php b/core/lib/Drupal/Core/Template/TwigEnvironment.php
index a3a830411686f3fbb7c84c87e81427cc578722a7..21755a5057c728d0e12fc46e3b81eb455a2963f3 100644
--- a/core/lib/Drupal/Core/Template/TwigEnvironment.php
+++ b/core/lib/Drupal/Core/Template/TwigEnvironment.php
@@ -3,7 +3,6 @@
 namespace Drupal\Core\Template;
 
 use Drupal\Core\Cache\CacheBackendInterface;
-use Drupal\Core\PhpStorage\PhpStorageFactory;
 use Drupal\Core\Render\Markup;
 use Drupal\Core\State\StateInterface;
 
@@ -17,18 +16,6 @@
  */
 class TwigEnvironment extends \Twig_Environment {
 
-  /**
-   * Key name of the Twig cache prefix metadata key-value pair in State.
-   */
-  const CACHE_PREFIX_METADATA_KEY = 'twig_extension_hash_prefix';
-
-  /**
-   * The state service.
-   *
-   * @var \Drupal\Core\State\StateInterface
-   */
-  protected $state;
-
   /**
    * Static cache of template classes.
    *
@@ -56,8 +43,6 @@ class TwigEnvironment extends \Twig_Environment {
    *   The options for the Twig environment.
    */
   public function __construct($root, CacheBackendInterface $cache, $twig_extension_hash, StateInterface $state, \Twig_LoaderInterface $loader = NULL, $options = []) {
-    $this->state = $state;
-
     // Ensure that twig.engine is loaded, given that it is needed to render a
     // template because functions like TwigExtension::escapeFilter() are called.
     require_once $root . '/core/themes/engines/twig/twig.engine';
@@ -78,7 +63,7 @@ public function __construct($root, CacheBackendInterface $cache, $twig_extension
     $this->addExtension($sandbox);
 
     if ($options['cache'] === TRUE) {
-      $current = $state->get(static::CACHE_PREFIX_METADATA_KEY, ['twig_extension_hash' => '']);
+      $current = $state->get('twig_extension_hash_prefix', ['twig_extension_hash' => '']);
       if ($current['twig_extension_hash'] !== $twig_extension_hash || empty($current['twig_cache_prefix'])) {
         $current = [
           'twig_extension_hash' => $twig_extension_hash,
@@ -86,7 +71,7 @@ public function __construct($root, CacheBackendInterface $cache, $twig_extension
           'twig_cache_prefix' => uniqid(),
 
         ];
-        $state->set(static::CACHE_PREFIX_METADATA_KEY, $current);
+        $state->set('twig_extension_hash_prefix', $current);
       }
       $this->twigCachePrefix = $current['twig_cache_prefix'];
 
@@ -97,18 +82,6 @@ public function __construct($root, CacheBackendInterface $cache, $twig_extension
     parent::__construct($this->loader, $options);
   }
 
-  /**
-   * Invalidates all compiled Twig templates.
-   *
-   * @see \drupal_flush_all_caches
-   */
-  public function invalidate() {
-    PhpStorageFactory::get('twig')->deleteAll();
-    $this->templateClasses = [];
-    $this->loadedTemplates = [];
-    $this->state->delete(static::CACHE_PREFIX_METADATA_KEY);
-  }
-
   /**
    * Get the cache prefixed used by \Drupal\Core\Template\TwigPhpStorageCache
    *
diff --git a/core/tests/Drupal/KernelTests/Core/Theme/TwigEnvironmentTest.php b/core/tests/Drupal/KernelTests/Core/Theme/TwigEnvironmentTest.php
index 854c25c8dc6317cbfb1bb3814b811db8f0fd3b96..5d6f61f205be8a4dd088e38a40cdef9c0a9a5d2d 100644
--- a/core/tests/Drupal/KernelTests/Core/Theme/TwigEnvironmentTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Theme/TwigEnvironmentTest.php
@@ -4,11 +4,9 @@
 
 use Drupal\Component\Utility\Crypt;
 use Drupal\Component\Utility\Html;
-use Drupal\Core\DependencyInjection\ContainerBuilder;
 use Drupal\Core\Site\Settings;
 use Drupal\Core\Template\TwigPhpStorageCache;
 use Drupal\KernelTests\KernelTestBase;
-use Symfony\Component\DependencyInjection\Definition;
 
 /**
  * Tests the twig environment.
@@ -145,52 +143,4 @@ public function testCacheFilename() {
     $this->assertNotEqual($new_extension_filename, $original_filename);
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public function register(ContainerBuilder $container) {
-    parent::register($container);
-
-    $container->setDefinition('twig_loader__file_system', new Definition('Twig_Loader_Filesystem', [[sys_get_temp_dir()]]))
-      ->addTag('twig.loader');
-  }
-
-
-  /**
-   * Test template invalidation.
-   */
-  public function testTemplateInvalidation() {
-    $template_before = <<<TWIG
-<div>Hello before</div>
-TWIG;
-    $template_after = <<<TWIG
-<div>Hello after</div>
-TWIG;
-
-    $tempfile = tempnam(sys_get_temp_dir(), '__METHOD__') . '.html.twig';
-    file_put_contents($tempfile, $template_before);
-
-    /** @var \Drupal\Core\Template\TwigEnvironment $environment */
-    $environment = \Drupal::service('twig');
-
-    $output = $environment->load(basename($tempfile))->render();
-    $this->assertEquals($template_before, $output);
-
-    file_put_contents($tempfile, $template_after);
-    $output = $environment->load(basename($tempfile))->render();
-    $this->assertEquals($template_before, $output);
-
-    $environment->invalidate();
-    // Manually change $templateClassPrefix to force a different template
-    // classname, as the other class is still loaded. This wouldn't be a problem
-    // on a real site where you reload the page.
-    $reflection = new \ReflectionClass($environment);
-    $property_reflection = $reflection->getProperty('templateClassPrefix');
-    $property_reflection->setAccessible(TRUE);
-    $property_reflection->setValue($environment, 'otherPrefix');
-
-    $output = $environment->load(basename($tempfile))->render();
-    $this->assertEquals($template_after, $output);
-  }
-
 }