2 namespace TYPO3\CMS\Extensionmanager\Utility;
42 public function mapExtensionArrayToModel(array $extensionArray)
45 $extension = $this->objectManager->get(\TYPO3\CMS\Extensionmanager\Domain\Model\Extension::class);
46 $extension->setExtensionKey($extensionArray[
'key']);
47 if (isset($extensionArray[
'version'])) {
48 $extension->setVersion($extensionArray[
'version']);
50 if (isset($extensionArray[
'constraints'])) {
51 $extension->setDependencies($this->convertDependenciesToObjects(serialize($extensionArray[
'constraints'])));
62 public function convertDependenciesToObjects($dependencies)
64 $dependenciesObject = new \SplObjectStorage();
65 $unserializedDependencies = unserialize($dependencies);
66 if (!is_array($unserializedDependencies)) {
67 return $dependenciesObject;
69 foreach ($unserializedDependencies as $dependencyType => $dependencyValues) {
71 if (!is_array($dependencyValues)) {
74 foreach ($dependencyValues as $dependency => $versions) {
75 if ($dependencyType && $dependency) {
76 $versionNumbers = \TYPO3\CMS\Core\Utility\VersionNumberUtility::convertVersionsStringToVersionNumbers($versions);
77 $lowest = $versionNumbers[0];
78 if (count($versionNumbers) === 2) {
79 $highest = $versionNumbers[1];
84 $dependencyObject = $this->objectManager->get(\TYPO3\CMS\Extensionmanager\Domain\Model\Dependency::class);
85 $dependencyObject->setType($dependencyType);
88 $dependencyObject->setIdentifier($dependency ===
'cms' ?
'core' : $dependency);
89 $dependencyObject->setLowestVersion($lowest);
90 $dependencyObject->setHighestVersion($highest);
91 $dependenciesObject->attach($dependencyObject);
92 unset($dependencyObject);
96 return $dependenciesObject;