/** * Execute the command. * * @return void */ public function handle() { if (!in_array($this->argument('type'), [CommandData::$COMMAND_TYPE_API, CommandData::$COMMAND_TYPE_SCAFFOLD, CommandData::$COMMAND_TYPE_API_SCAFFOLD])) { $this->error('invalid rollback type'); } $this->commandData = new CommandData($this, $this->argument('type')); $this->commandData->config->mName = $this->commandData->modelName = $this->argument('model'); $this->commandData->config->prepareOptions($this->commandData, ['tableName', 'prefix']); $this->commandData->config->prepareAddOns(); $this->commandData->config->prepareModelNames(); $this->commandData->config->prepareTableName(); $this->commandData->config->loadPaths(); $this->commandData->config->loadNamespaces($this->commandData); $this->commandData = $this->commandData->config->loadDynamicVariables($this->commandData); $migrationGenerator = new MigrationGenerator($this->commandData); $migrationGenerator->rollback(); $modelGenerator = new ModelGenerator($this->commandData); $modelGenerator->rollback(); $repositoryGenerator = new RepositoryGenerator($this->commandData); $repositoryGenerator->rollback(); $requestGenerator = new APIRequestGenerator($this->commandData); $requestGenerator->rollback(); $controllerGenerator = new APIControllerGenerator($this->commandData); $controllerGenerator->rollback(); $routesGenerator = new APIRoutesGenerator($this->commandData); $routesGenerator->rollback(); $requestGenerator = new RequestGenerator($this->commandData); $requestGenerator->rollback(); $controllerGenerator = new ControllerGenerator($this->commandData); $controllerGenerator->rollback(); $viewGenerator = new ViewGenerator($this->commandData); $viewGenerator->rollback(); $routeGenerator = new RoutesGenerator($this->commandData); $routeGenerator->rollback(); if ($this->commandData->getAddOn('tests')) { $repositoryTestGenerator = new RepositoryTestGenerator($this->commandData); $repositoryTestGenerator->rollback(); $testTraitGenerator = new TestTraitGenerator($this->commandData); $testTraitGenerator->rollback(); $apiTestGenerator = new APITestGenerator($this->commandData); $apiTestGenerator->rollback(); } if ($this->commandData->config->getAddOn('menu.enabled')) { $menuGenerator = new MenuGenerator($this->commandData); $menuGenerator->rollback(); } $this->info('Generating autoload files'); $this->composer->dumpOptimized(); }