/** * @param PreFlushConfigEvent $event */ public function preFlush(PreFlushConfigEvent $event) { $config = $event->getConfig('extend'); if (null === $config || $event->isFieldConfig()) { return; } $className = $config->getId()->getClassName(); $this->provider->clearCache($className); $changeSet = $event->getConfigManager()->getConfigChangeSet($config); $isDeleted = isset($changeSet['state']) && $changeSet['state'][1] === ExtendScope::STATE_DELETE; if (!$isDeleted) { $this->provider->warmUpCache($className); } }
/** * @param PersistConfigEvent $event */ public function prePersistEntityConfig(PersistConfigEvent $event) { $config = $event->getConfig(); $configId = $config->getId(); if ($configId->getScope() !== 'extend') { return; } $className = $configId->getClassName(); $this->provider->clearCache($className); $change = $event->getConfigManager()->getConfigChangeSet($config); $isDeleted = isset($change['state']) && $change['state'][1] === ExtendScope::STATE_DELETE; if (!$isDeleted) { $this->provider->warmUpCache($className); } }
/** * {@inheritdoc} */ public function warmUpCache($className = null) { foreach ($this->providers as $provider) { $provider->warmUpCache($className); } if ($this->defaultProvider) { $this->defaultProvider->warmUpCache($className); } }
/** * @param PersistConfigEvent $event */ public function prePersistEntityConfig(PersistConfigEvent $event) { $event->getConfigManager()->calculateConfigChangeSet($event->getConfig()); $changes = $event->getConfigManager()->getConfigChangeSet($event->getConfig()); $isDeleted = false; // Now if you press delete entity button, in state variable, in 1st position will be "Deleted" string. // If you press restore entity, then "Deleted" string will be at 0 position. if (isset($changes['state']) && $changes['state'][1] === 'Deleted') { $isDeleted = true; } $cp = $event->getConfigManager()->getProvider('ownership'); $className = $event->getConfig()->getId()->getClassName(); if ($cp->hasConfig($className)) { $this->provider->clearCache($className); if (!$isDeleted) { $this->provider->warmUpCache($className); } } }
/** * {@inheritdoc} */ public function warmUp($cacheDir) { $this->provider->warmUpCache(); }