Exemple #1
0
 public function load($modelId, $field = null)
 {
     parent::load($modelId, $field);
     $this->setId($modelId);
     // array_filter to remove empty items caused by non-magento modules requirements
     $this->setDepends(array_filter($this->packageInfo->getRequire($this->getCode())));
     $this->setVersion($this->packageInfo->getVersion($this->getCode()));
     $this->setPackageName($this->packageInfo->getPackageName($this->getCode()));
     return $this;
 }
 /**
  * Validate list of modules against installed composer packages and return error messages
  *
  * @param string[] $modules
  * @return string[]
  */
 protected function validate(array $modules)
 {
     $messages = [];
     $unknownPackages = [];
     $unknownModules = [];
     $installedPackages = $this->composer->getRootRequiredPackages();
     foreach ($modules as $module) {
         if (array_search($this->packageInfo->getPackageName($module), $installedPackages) === false) {
             $unknownPackages[] = $module;
         }
         if (!$this->fullModuleList->has($module)) {
             $unknownModules[] = $module;
         }
     }
     $unknownPackages = array_diff($unknownPackages, $unknownModules);
     if (!empty($unknownPackages)) {
         $text = count($unknownPackages) > 1 ?
             ' are not installed composer packages' : ' is not an installed composer package';
         $messages[] = '<error>' . implode(', ', $unknownPackages) . $text . '</error>';
     }
     if (!empty($unknownModules)) {
         $messages[] = '<error>Unknown module(s): ' . implode(', ', $unknownModules) . '</error>';
     }
     return $messages;
 }
 /**
  * Get full list of modules as an associative array
  *
  * @return array
  */
 private function getAllModules()
 {
     $modules = [];
     $allModules = $this->fullModuleList->getNames();
     foreach ($allModules as $module) {
         $moduleName = $this->packageInfo->getPackageName($module);
         $modules[$moduleName]['name'] = $moduleName;
         $modules[$moduleName]['type'] = \Magento\Framework\Composer\ComposerInformation::MODULE_PACKAGE_TYPE;
         $modules[$moduleName]['version'] = $this->packageInfo->getVersion($module);
     }
     return $modules;
 }
 public function testGetPackageName()
 {
     $this->assertEquals('a', $this->packageInfo->getPackageName('A'));
     $this->assertEquals('b', $this->packageInfo->getPackageName('B'));
     $this->assertEquals('c', $this->packageInfo->getPackageName('C'));
     $this->assertEquals('d', $this->packageInfo->getPackageName('D'));
     $this->assertEquals('e', $this->packageInfo->getPackageName('E'));
 }