コード例 #1
0
 /**
  * Executa o soft rollback
  *
  * @param mixed $rollback
  * @param Command $command
  * @return bool
  */
 public static function execSoftRollback($rollback, Command $command)
 {
     RollbackManager::$errors = [];
     $counterMigrationFilesDeleted = 0;
     //////////////////////////////////////////////TRANSFORM ROLLBACK FILE TO ARRAY//////////////////////////////////
     RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors), function () use(&$rollback) {
         return RollbackManager::transformRollbackFileToRollbackArrayIfNeeded($rollback);
     }, function ($result) {
         if ($result !== true) {
             RollbackManager::$errors = array_merge(RollbackManager::$errors, $result);
         }
     }, $command, Strings::STATUS_READING_ROLLBACK_FILE);
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //////////////////////////////////////////////CHECK IF MIGRATION DATABASE CONTROLL EXISTS///////////////////////
     RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors), function () {
         return RollbackManager::verifyIfMigrationsControllDbExists();
     }, function ($result) {
         if ($result !== true) {
             RollbackManager::$errors = array_merge(RollbackManager::$errors, $result);
         }
     }, $command, Strings::STATUS_IF_MIGRATIONS_CONTROLL_DB_EXISTS);
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //////////////////////////////////////////////RUN MIGRATION ROLLBACK////////////////////////////////////////////
     RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback, $command) {
         return RollbackManager::runMigrationRollback($rollback, $command);
     }, function ($result) {
         if ($result !== true) {
             RollbackManager::$errors = array_merge(RollbackManager::$errors, $result);
         }
     }, $command, Strings::STATUS_RUNNING_MIGRATE_ROLLBACK);
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //////////////////////////////////////////////RUNNING ROUTEBUILDER FILE ROLLBACK////////////////////////////////
     RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback) {
         return RollbackManager::routeBuilderFileRollback($rollback);
     }, function ($result) {
         if ($result !== true) {
             RollbackManager::$errors = array_merge(RollbackManager::$errors, $result);
         }
     }, $command, Strings::STATUS_RUNNING_ROUTEBUILDER_ROLLBACK);
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //////////////////////////////////////////////ROLLBACK DO ARQUIVO DE ROTAS//////////////////////////////////////
     RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback) {
         return RollbackManager::runRoutesRollback($rollback);
     }, function ($result) {
         if ($result !== true) {
             RollbackManager::$errors = array_merge(RollbackManager::$errors, $result);
         }
     }, $command, Strings::STATUS_RUNNING_ROUTES_ROLLBACK);
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     ///////////////////////////////////////////ROLLBACK DOS ARQUIVOS DE MIGRATION///////////////////////////////////
     RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback, &$counterMigrationFilesDeleted) {
         return RollbackManager::runMigrationFilesRollback($rollback, $counterMigrationFilesDeleted);
     }, function ($result) {
         if ($result !== true) {
             RollbackManager::$errors = array_merge(RollbackManager::$errors, $result);
         }
     }, $command, Strings::STATUS_RUNNING_MIGRATION_FILES_ROLLBACK);
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     ///////////////////////////////////////////ROLLBACK DO CONTADOR DE MIGRATION////////////////////////////////////
     RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback, &$counterMigrationFilesDeleted) {
         return RollbackManager::runMigrationCounterRollback($rollback, $counterMigrationFilesDeleted);
     }, function ($result) {
         if ($result !== true) {
             RollbackManager::$errors = array_merge(RollbackManager::$errors, $result);
         }
     }, $command, Strings::STATUS_RUNNING_MIGRATION_COUNTER_ROLLBACK);
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     /////////////////////////////////////ROLLBACK DOS ARQUIVOS ANTIGOS DE MIGRATION/////////////////////////////////
     RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback) {
         return RollbackManager::runMigrationOldFilesRollback($rollback);
     }, function ($result) {
         if ($result !== true) {
             RollbackManager::$errors = array_merge(RollbackManager::$errors, $result);
         }
     }, $command, Strings::STATUS_RUNNING_MIGRATION_OLD_FILES_ROLLBACK);
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     /////////////////////////////////////ROLLBACK DOS ARQUIVOS DO MODULEO///////////////////////////////////////////
     RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback) {
         return RollbackManager::runModuleFilesRollback($rollback);
     }, function ($result) {
         if ($result !== true) {
             RollbackManager::$errors = array_merge(RollbackManager::$errors, $result);
         }
     }, $command, Strings::STATUS_MODULE_FILE_ROLLBACK);
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     /////////////////////////////////////ROLLBACK DOS CONFIGURAÇÕES DO MODULO///////////////////////////////////////
     RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback) {
         return RollbackManager::runModuleConfigsRollback($rollback);
     }, function ($result) {
         if ($result !== true) {
             RollbackManager::$errors = array_merge(RollbackManager::$errors, $result);
         }
     }, $command, Strings::STATUS_MODULE_CONFIG_ROLLBACK);
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     /////////////////////////////////////ROLLBACK DO REGISTRO DO MODULO/////////////////////////////////////////////
     RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback) {
         return RollbackManager::moduleUnregister($rollback);
     }, function ($result) {
         if ($result !== true) {
             RollbackManager::$errors = array_merge(RollbackManager::$errors, $result);
         }
     }, $command, Strings::STATUS_MODULE_UNREGISTER);
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     /////////////////////////////////////ROLLBACK DO ARQUIVO DE ROLLBACK DO MODULO//////////////////////////////////
     RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback) {
         return RollbackManager::runModuleRollbackFileRollback($rollback);
     }, function ($result) {
         if ($result !== true) {
             RollbackManager::$errors = array_merge(RollbackManager::$errors, $result);
         }
     }, $command, Strings::STATUS_MODULE_ROLLBACK_FILE_ROLLBACK);
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     /////////////////////////////////////ROLLBACK DAS PASTAS CRIADAS PELO MODULO////////////////////////////////////
     RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback) {
         return RollbackManager::removeModuleFolders($rollback);
     }, function ($result) {
         if ($result !== true) {
             RollbackManager::$errors = array_merge(RollbackManager::$errors, $result);
         }
     }, $command, Strings::STATUS_REMOVING_FOLDERS);
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     ////////////////////////////////////////////////RESPONSE (OUTPUT)///////////////////////////////////////////////
     if (empty(RollbackManager::$errors)) {
         //Se os comandos rodarem com sucesso
         //Comentario comando executado com sucesso
         $command->info(Strings::SUCCESS_ROLLBACK);
         return true;
     } else {
         //Se ocorrer erro ao rodar os comandos
         foreach (RollbackManager::$errors as $error) {
             $command->error($error);
         }
         $command->info(Strings::ERROR_ROLLBACK);
         return false;
     }
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 }