public function getComponentsWithNewVersion($componentsToCheck)
    {
        $componentsToUpdate = array();

        // we make sure core updates are processed before any plugin updates
        if (isset($componentsToCheck['core'])) {
            $coreVersions = $componentsToCheck['core'];
            unset($componentsToCheck['core']);
            $componentsToCheck = array_merge(array('core' => $coreVersions), $componentsToCheck);
        }

        $recordedCoreVersion = $this->getCurrentComponentVersion('core');
        if (empty($recordedCoreVersion)) {
            // This should not happen
            $recordedCoreVersion = Version::VERSION;
            $this->markComponentSuccessfullyUpdated('core', $recordedCoreVersion);
        }

        foreach ($componentsToCheck as $name => $version) {
            $currentVersion = $this->getCurrentComponentVersion($name);

            if (ColumnUpdater::isDimensionComponent($name)) {
                $isComponentOutdated = $currentVersion !== $version;
            } else {
                // note: when versionCompare == 1, the version in the DB is newer, we choose to ignore
                $isComponentOutdated = version_compare($currentVersion, $version) == -1;
            }

            if ($isComponentOutdated || $currentVersion === false) {
                $componentsToUpdate[$name] = array(
                    self::INDEX_CURRENT_VERSION => $currentVersion,
                    self::INDEX_NEW_VERSION     => $version
                );
            }
        }

        return $componentsToUpdate;
    }
public function getComponentsWithNewVersion($componentsToCheck)
    {
        $componentsToUpdate = array();

        // we make sure core updates are processed before any plugin updates
        if (isset($componentsToCheck['core'])) {
            $coreVersions = $componentsToCheck['core'];
            unset($componentsToCheck['core']);
            $componentsToCheck = array_merge(array('core' => $coreVersions), $componentsToCheck);
        }

        $recordedCoreVersion = $this->getCurrentComponentVersion('core');
        if (empty($recordedCoreVersion)) {
            // This should not happen
            $recordedCoreVersion = Version::VERSION;
            $this->markComponentSuccessfullyUpdated('core', $recordedCoreVersion);
        }

        foreach ($componentsToCheck as $name => $version) {
            $currentVersion = $this->getCurrentComponentVersion($name);

            if (ColumnUpdater::isDimensionComponent($name)) {
                $isComponentOutdated = $currentVersion !== $version;
            } else {
                // note: when versionCompare == 1, the version in the DB is newer, we choose to ignore
                $isComponentOutdated = version_compare($currentVersion, $version) == -1;
            }

            if ($isComponentOutdated || $currentVersion === false) {
                $componentsToUpdate[$name] = array(
                    self::INDEX_CURRENT_VERSION => $currentVersion,
                    self::INDEX_NEW_VERSION     => $version
                );
            }
        }

        return $componentsToUpdate;
    }
public function getComponentsWithNewVersion ( $ componentsToCheck ) { $ componentsToUpdate = array ( ) ; // we make sure core updates are processed before any plugin updates if ( isset ( $ componentsToCheck [ 'core' ] ) ) { $ coreVersions = $ componentsToCheck [ 'core' ] ; unset ( $ componentsToCheck [ 'core' ] ) ; $ componentsToCheck = array_merge ( array ( 'core' => $ coreVersions ) , $ componentsToCheck ) ; } $ recordedCoreVersion = $ this -> getCurrentComponentVersion ( 'core' ) ; if ( empty ( $ recordedCoreVersion ) ) { // This should not happen $ recordedCoreVersion = Version :: VERSION ; $ this -> markComponentSuccessfullyUpdated ( 'core' , $ recordedCoreVersion ) ; } foreach ( $ componentsToCheck as $ name => $ version ) { $ currentVersion = $ this -> getCurrentComponentVersion ( $ name ) ; if ( ColumnUpdater :: isDimensionComponent ( $ name ) ) { $ isComponentOutdated = $ currentVersion !== $ version ; } else { // note: when versionCompare == 1, the version in the DB is newer, we choose to ignore $ isComponentOutdated = version_compare ( $ currentVersion , $ version ) == - 1 ; } if ( $ isComponentOutdated || $ currentVersion === false ) { $ componentsToUpdate [ $ name ] = array ( self :: INDEX_CURRENT_VERSION => $ currentVersion , self :: INDEX_NEW_VERSION => $ version ) ; } } return $ componentsToUpdate ; }
Construct list of outdated components

@param string[] $componentsToCheck An array mapping component names to the latest locally available version.
If the version is later than the currently installed version, the component
must be upgraded.

Example: `array('core' => '2.11.0')`
@throws \Exception
@return array array( componentName => array( oldVersion, newVersion), [...])
Construct list of outdated components