21 private $packageModuleMap;
28 private $modulePackageVersionMap;
54 private $componentRegistrar;
77 $this->reader = $reader;
90 private function load()
92 if ($this->packageModuleMap ===
null) {
93 $jsonData = $this->reader->getComposerJsonFiles()->toArray();
95 $key = $moduleDir .
'/composer.json';
96 if (isset($jsonData[$key]) && $jsonData[$key]) {
98 $packageData = $this->serializer->unserialize($jsonData[$key]);
99 }
catch (\InvalidArgumentException $e) {
100 throw new \InvalidArgumentException(
102 "%s composer.json error: %s",
109 if (isset($packageData[
'name'])) {
110 $this->packageModuleMap[$packageData[
'name']] = $moduleName;
112 if (isset($packageData[
'version'])) {
113 $this->modulePackageVersionMap[$moduleName] = $packageData[
'version'];
115 if (!empty($packageData[
'require'])) {
116 $this->requireMap[$moduleName] = array_keys($packageData[
'require']);
118 if (!empty($packageData[
'conflict'])) {
119 $this->conflictMap[$moduleName] = $packageData[
'conflict'];
137 if (isset($this->packageModuleMap[$packageName])) {
138 $moduleName = $this->packageModuleMap[$packageName];
155 if (!isset($this->nonExistingDependencies[$dependency])) {
156 $this->nonExistingDependencies[$dependency] = $dependency;
178 $moduleName = str_replace(
'magento/module-',
'', $packageName);
179 $moduleName = str_replace(
'-',
' ', $moduleName);
180 $moduleName = str_replace(
' ',
'', ucwords($moduleName));
182 return 'Magento_' . $moduleName;
193 return strpos($packageName,
'magento/module-') === 0;
205 return array_search($moduleName, $this->packageModuleMap) ?:
'';
214 private function convertToModuleNames($packageNames)
217 foreach ($packageNames as $package) {
233 if (isset($this->requireMap[$moduleName])) {
234 $require = $this->convertToModuleNames($this->requireMap[$moduleName]);
249 foreach ($this->requireMap as $moduleName => $moduleRequireList) {
250 if (in_array($requiredModuleName, $moduleRequireList)) {
251 $requiredBy[] = $moduleName;
268 if (isset($this->conflictMap[$moduleName])) {
269 $conflict = array_combine(
270 $this->convertToModuleNames(array_keys($this->conflictMap[$moduleName])),
271 $this->conflictMap[$moduleName]
286 return $this->modulePackageVersionMap[$moduleName] ??
'';
elseif(isset( $params[ 'redirect_parent']))
getNonExistingDependencies()
convertPackageNameToModuleName($packageName)
isMagentoPackage($packageName)
__construct(Dir\Reader $reader, ComponentRegistrar $componentRegistrar, \Magento\Framework\Serialize\Serializer\Json $serializer=null)
addNonExistingDependency($dependency)
getModuleName($packageName)
getPackageName($moduleName)
getRequiredBy($requiredModuleName)