/** * 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; }