isDimensionComponent() public static method

public static isDimensionComponent ( $name )
Example #1
0
 /**
  * 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), [...])
  */
 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;
 }