Пример #1
0
 /**
  * Returns the package meta data object of this package.
  *
  * @return MetaData
  */
 public function getPackageMetaData()
 {
     if ($this->packageMetaData === null) {
         $this->packageMetaData = new MetaData($this->getPackageKey());
         $this->packageMetaData->setDescription($this->getValueFromComposerManifest('description'));
         $this->packageMetaData->setVersion($this->getValueFromComposerManifest('version'));
         $requirements = $this->getValueFromComposerManifest('require');
         if ($requirements !== null) {
             foreach ($requirements as $requirement => $version) {
                 $packageKey = $this->packageManager->getPackageKeyFromComposerName($requirement);
                 // dynamically migrate 'cms' dependency to 'core' dependency
                 // see also \TYPO3\CMS\Extensionmanager\Utility\ExtensionModelUtility::convertDependenciesToObjects
                 if ($packageKey === 'cms') {
                     GeneralUtility::deprecationLog('Extension "' . $this->packageKey . '" defines a dependency on ext:cms, which has been removed. Please remove the dependency.');
                     $packageKey = 'core';
                 }
                 $constraint = new MetaData\PackageConstraint(MetaData::CONSTRAINT_TYPE_DEPENDS, $packageKey);
                 $this->packageMetaData->addConstraint($constraint);
             }
         }
         $suggestions = $this->getValueFromComposerManifest('suggest');
         if ($suggestions !== null) {
             foreach ($suggestions as $suggestion => $version) {
                 $packageKey = $this->packageManager->getPackageKeyFromComposerName($suggestion);
                 $constraint = new MetaData\PackageConstraint(MetaData::CONSTRAINT_TYPE_SUGGESTS, $packageKey);
                 $this->packageMetaData->addConstraint($constraint);
             }
         }
     }
     return $this->packageMetaData;
 }