Same name in other branches
- 5.0.x advagg_mod/src/EventSubscriber/InitSubscriber.php \Drupal\advagg_mod\EventSubscriber\InitSubscriber::onEvent()
- 8.x-2.x advagg_bundler/src/EventSubscriber/InitSubscriber.php \Drupal\advagg_bundler\EventSubscriber\InitSubscriber::onEvent()
- 8.x-2.x advagg_mod/src/EventSubscriber/InitSubscriber.php \Drupal\advagg_mod\EventSubscriber\InitSubscriber::onEvent()
- 8.x-3.x advagg_mod/src/EventSubscriber/InitSubscriber.php \Drupal\advagg_mod\EventSubscriber\InitSubscriber::onEvent()
- 8.x-4.x advagg_mod/src/EventSubscriber/InitSubscriber.php \Drupal\advagg_mod\EventSubscriber\InitSubscriber::onEvent()
Synchronize global_counter variable between sites.
Only if using unified_multisite_dir.
File
-
advagg_mod/
src/ EventSubscriber/ InitSubscriber.php, line 129
Class
- InitSubscriber
- Perform initialization tasks for advagg_mod.
Namespace
Drupal\advagg_mod\EventSubscriberCode
public function onEvent() {
$multisiteDir = $this->config
->get('unified_multisite_dir') ?? '';
$dir = rtrim($multisiteDir, '/');
if (empty($dir) || !file_exists($dir) || !is_dir($dir)) {
return;
}
$counter_filename = $dir . '/_global_counter';
$local_counter = $this->advaggConfig
->get('global_counter');
if (!file_exists($counter_filename)) {
$this->fileSystem
->saveData($local_counter, $counter_filename, FileSystemInterface::EXISTS_REPLACE);
}
else {
$shared_counter = (int) file_get_contents($counter_filename);
if ($shared_counter == $local_counter) {
// Counters are the same, return.
return;
}
elseif ($shared_counter < $local_counter) {
// Local counter is higher, update saved file and return.
$this->fileSystem
->saveData($local_counter, $counter_filename, FileSystemInterface::EXISTS_REPLACE);
return;
}
elseif ($shared_counter > $local_counter) {
// Shared counter is higher, update local copy and return.
$this->advaggConfig
->set('global_counter', $shared_counter)
->save();
return;
}
}
}