ThemeRegistry::__construct($cid, CacheBackendInterface $cache, LockBackendInterface $lock, $tags = array(), $modules_loaded = FALSE)
Constructs a ThemeRegistry object.
Parameters
string $cid: The cid for the array being cached.
\Drupal\Core\Cache\CacheBackendInterface $cache: The cache backend.
\Drupal\Core\Lock\LockBackendInterface $lock: The lock backend.
array $tags: (optional) The tags to specify for the cache item.
bool $modules_loaded: Whether all modules have already been loaded.
Overrides CacheCollector::__construct
File
- core/lib/Drupal/Core/Utility/ThemeRegistry.php, line 49
Class
- ThemeRegistry
- Builds the run-time theme registry.
Namespace
Drupal\Core\Utility
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | function __construct( $cid , CacheBackendInterface $cache , LockBackendInterface $lock , $tags = array (), $modules_loaded = FALSE) { $this ->cid = $cid ; $this ->cache = $cache ; $this ->lock = $lock ; $this ->tags = $tags ; $this ->persistable = $modules_loaded && \Drupal::hasRequest() && \Drupal::request()->isMethod( 'GET' ); // @todo: Implement lazyload. $this ->cacheLoaded = TRUE; if ( $this ->persistable && $cached = $this ->cache->get( $this ->cid)) { $this ->storage = $cached ->data; } else { // If there is no runtime cache stored, fetch the full theme registry, // but then initialize each value to NULL. This allows offsetExists() // to function correctly on non-registered theme hooks without triggering // a call to resolveCacheMiss(). $this ->storage = $this ->initializeRegistry(); foreach ( array_keys ( $this ->storage) as $key ) { $this ->persist( $key ); } // RegistryTest::testRaceCondition() ensures that the cache entry is // written on the initial construction of the theme registry. $this ->updateCache(); } } |
Please login to continue.