diff --git a/src/Classes/ModuleCreator.php b/src/Classes/ModuleCreator.php index 217a9128..f097c2ba 100644 --- a/src/Classes/ModuleCreator.php +++ b/src/Classes/ModuleCreator.php @@ -14,6 +14,7 @@ namespace RobinTheHood\ModifiedModuleLoaderClient; use RobinTheHood\ModifiedModuleLoaderClient\App; +use RobinTheHood\ModifiedModuleLoaderClient\Loader\RemoteModuleLoader; class ModuleCreator { @@ -35,7 +36,7 @@ public function createModule($vendorPrefix, $vendorName, $moduleName) $moduleConstName = str_replace('-', '_', strtoupper('MODULE_' . $vendorPrefix . '_' . $moduleName)); $this->createFolders($archiveName, $fileName, $vendorName, $moduleNameCamelCase); - $this->createModuleInfoJsonFile($archiveName, $moduleName); + $this->createModuleInfoJsonFile($vendorName, $moduleName); $this->createSystemModuleFile($archiveName, $fileName, $className, $moduleConstName); $this->createSystemModuleLanguageDeFile($archiveName, $fileName, $moduleConstName, $vendorName); $this->createSystemModuleLanguageEnFile($archiveName, $fileName, $moduleConstName, $vendorName); @@ -76,8 +77,25 @@ public function createFolders($archiveName, $fileName, $vendorName, $moduleNameC @mkdir(App::getModulesRoot() . '/' . $archiveName . '/src-mmlc/Classes'); } - public function createModuleInfoJsonFile($archiveName, $moduleName) + private function getLatestVersion(string $archiveName): string { + $remoteModuleLoader = RemoteModuleLoader::create(); + $module = $remoteModuleLoader->loadLatestVersionByArchiveName($archiveName); + + /** + * Usually the module does not exist yet, so `$module` is `null`. + */ + if (null === $module) { + return '0.1.0'; + } + + return $module->getVersion(); + } + + public function createModuleInfoJsonFile($vendorName, $moduleName) + { + $archiveName = $vendorName . '/' . $moduleName; + $info = [ 'name' => $moduleName, 'archiveName' => $archiveName, @@ -96,8 +114,8 @@ public function createModuleInfoJsonFile($archiveName, $moduleName) 'price' => '', 'require' => [ - 'composer/autoload' => '^1.1.0', - 'robinthehood/modified-std-module' => '^0.1.0' + 'composer/autoload' => '^' . $this->getLatestVersion('RobinTheHood/modified-composer-autoload'), + 'robinthehood/modified-std-module' => '^' . $this->getLatestVersion('RobinTheHood/modified-std-module'), ], 'modifiedCompatibility' => [