original_string: private function loadComponentsWithUpdateFile()
      {
          $componentsWithUpdateFile = array();
  
          foreach ($this->componentsWithNewVersion as $name => $versions) {
              $currentVersion = $versions[self::INDEX_CURRENT_VERSION];
              $newVersion = $versions[self::INDEX_NEW_VERSION];
  
              if ($name == 'core') {
                  $pathToUpdates = $this->pathUpdateFileCore . '*.php';
              } elseif (ColumnUpdater::isDimensionComponent($name)) {
                  $componentsWithUpdateFile[$name][PIWIK_INCLUDE_PATH . '/core/Columns/Updater.php'] = $newVersion;
              } else {
                  if ($this->pathUpdateFilePlugins) {
                      $pathToUpdates = sprintf($this->pathUpdateFilePlugins, $name) . '*.php';
                  } else {
                      $pathToUpdates = Manager::getPluginDirectory($name) . '/Updates/*.php';
                  }
              }
  
              if (!empty($pathToUpdates)) {
                  $files = _glob($pathToUpdates);
                  if ($files == false) {
                      $files = array();
                  }
  
                  foreach ($files as $file) {
                      $fileVersion = basename($file, '.php');
                      if (// if the update is from a newer version
                          version_compare($currentVersion, $fileVersion) == -1
                          // but we don't execute updates from non existing future releases
                          && version_compare($fileVersion, $newVersion) <= 0
                      ) {
                          $componentsWithUpdateFile[$name][$file] = $fileVersion;
                      }
                  }
              }
  
              if (isset($componentsWithUpdateFile[$name])) {
                  // order the update files by version asc
                  uasort($componentsWithUpdateFile[$name], "version_compare");
              } else {
                  // there are no update file => nothing to do, update to the new version is successful
                  $this->markComponentSuccessfullyUpdated($name, $newVersion);
              }
          }
  
          return $componentsWithUpdateFile;
      }
code: private function loadComponentsWithUpdateFile()
      {
          $componentsWithUpdateFile = array();
  
          foreach ($this->componentsWithNewVersion as $name => $versions) {
              $currentVersion = $versions[self::INDEX_CURRENT_VERSION];
              $newVersion = $versions[self::INDEX_NEW_VERSION];
  
              if ($name == 'core') {
                  $pathToUpdates = $this->pathUpdateFileCore . '*.php';
              } elseif (ColumnUpdater::isDimensionComponent($name)) {
                  $componentsWithUpdateFile[$name][PIWIK_INCLUDE_PATH . '/core/Columns/Updater.php'] = $newVersion;
              } else {
                  if ($this->pathUpdateFilePlugins) {
                      $pathToUpdates = sprintf($this->pathUpdateFilePlugins, $name) . '*.php';
                  } else {
                      $pathToUpdates = Manager::getPluginDirectory($name) . '/Updates/*.php';
                  }
              }
  
              if (!empty($pathToUpdates)) {
                  $files = _glob($pathToUpdates);
                  if ($files == false) {
                      $files = array();
                  }
  
                  foreach ($files as $file) {
                      $fileVersion = basename($file, '.php');
                      if (// if the update is from a newer version
                          version_compare($currentVersion, $fileVersion) == -1
                          // but we don't execute updates from non existing future releases
                          && version_compare($fileVersion, $newVersion) <= 0
                      ) {
                          $componentsWithUpdateFile[$name][$file] = $fileVersion;
                      }
                  }
              }
  
              if (isset($componentsWithUpdateFile[$name])) {
                  // order the update files by version asc
                  uasort($componentsWithUpdateFile[$name], "version_compare");
              } else {
                  // there are no update file => nothing to do, update to the new version is successful
                  $this->markComponentSuccessfullyUpdated($name, $newVersion);
              }
          }
  
          return $componentsWithUpdateFile;
      }
code_tokens: private function loadComponentsWithUpdateFile ( ) { $ componentsWithUpdateFile = array ( ) ; foreach ( $ this -> componentsWithNewVersion as $ name => $ versions ) { $ currentVersion = $ versions [ self :: INDEX_CURRENT_VERSION ] ; $ newVersion = $ versions [ self :: INDEX_NEW_VERSION ] ; if ( $ name == 'core' ) { $ pathToUpdates = $ this -> pathUpdateFileCore . '*.php' ; } elseif ( ColumnUpdater :: isDimensionComponent ( $ name ) ) { $ componentsWithUpdateFile [ $ name ] [ PIWIK_INCLUDE_PATH . '/core/Columns/Updater.php' ] = $ newVersion ; } else { if ( $ this -> pathUpdateFilePlugins ) { $ pathToUpdates = sprintf ( $ this -> pathUpdateFilePlugins , $ name ) . '*.php' ; } else { $ pathToUpdates = Manager :: getPluginDirectory ( $ name ) . '/Updates/*.php' ; } } if ( ! empty ( $ pathToUpdates ) ) { $ files = _glob ( $ pathToUpdates ) ; if ( $ files == false ) { $ files = array ( ) ; } foreach ( $ files as $ file ) { $ fileVersion = basename ( $ file , '.php' ) ; if ( // if the update is from a newer version version_compare ( $ currentVersion , $ fileVersion ) == - 1 // but we don't execute updates from non existing future releases && version_compare ( $ fileVersion , $ newVersion ) <= 0 ) { $ componentsWithUpdateFile [ $ name ] [ $ file ] = $ fileVersion ; } } } if ( isset ( $ componentsWithUpdateFile [ $ name ] ) ) { // order the update files by version asc uasort ( $ componentsWithUpdateFile [ $ name ] , "version_compare" ) ; } else { // there are no update file => nothing to do, update to the new version is successful $ this -> markComponentSuccessfullyUpdated ( $ name , $ newVersion ) ; } } return $ componentsWithUpdateFile ; }
docstring: Construct list of update files for the outdated components
  
  @return array( componentName => array( file1 => version1, [...]), [...])
docstring_tokens: Construct list of update files for the outdated components