You are here

protected function UpdateRegistry::getAvailableUpdateFunctions in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/lib/Drupal/Core/Update/UpdateRegistry.php \Drupal\Core\Update\UpdateRegistry::getAvailableUpdateFunctions()

Gets all available update functions.

Return value

callable[] A list of update functions.

2 calls to UpdateRegistry::getAvailableUpdateFunctions()
UpdateRegistry::getModuleUpdateFunctions in core/lib/Drupal/Core/Update/UpdateRegistry.php
Returns all available updates for a given module.
UpdateRegistry::getPendingUpdateFunctions in core/lib/Drupal/Core/Update/UpdateRegistry.php
Find all update functions that haven't been executed.

File

core/lib/Drupal/Core/Update/UpdateRegistry.php, line 100
Contains \Drupal\Core\Update\UpdateRegistry.

Class

UpdateRegistry
Provides all and missing update implementations.

Namespace

Drupal\Core\Update

Code

protected function getAvailableUpdateFunctions() {
  $regexp = '/^(?<module>.+)_' . $this->updateType . '_(?<name>.+)$/';
  $functions = get_defined_functions();
  $updates = [];
  foreach (preg_grep('/_' . $this->updateType . '_/', $functions['user']) as $function) {

    // If this function is a module update function, add it to the list of
    // module updates.
    if (preg_match($regexp, $function, $matches)) {
      if (in_array($matches['module'], $this->enabledModules)) {
        $updates[] = $matches['module'] . '_' . $this->updateType . '_' . $matches['name'];
      }
    }
  }

  // Ensure that the update order is deterministic.
  sort($updates);
  return $updates;
}