/**
  * Faz o rollback do arquivo de Routebuilder
  *
  * @param array $rollback
  * @return array|bool
  */
 private static function routeBuilderFileRollback($rollback)
 {
     $errors = [];
     if (array_key_exists(Strings::ROLLBACK_ROUTES_BUILDER_TAG, $rollback)) {
         $oldRoutesBuilder = EscapeHelper::decode($rollback[Strings::ROLLBACK_ROUTES_BUILDER_TAG]);
         if (file_put_contents(PathHelper::getRouteBuilderPath(), str_replace(file_get_contents(PathHelper::getRouteBuilderPath()), $oldRoutesBuilder, file_get_contents(PathHelper::getRouteBuilderPath()))) == false) {
             $errors[] = Strings::ERROR_WRITE_ROUTEBUILDER_FILE;
         }
     }
     return !empty($errors) ? $errors : true;
 }
 /**
  * Constroi as rotas dos modulos
  *
  * @param string $moduleType
  * @param string $moduleName
  * @param array $rollback
  * @return array|bool
  */
 public static function buildRoutes($moduleType, $moduleName, array &$rollback)
 {
     $errors = [];
     //Cria registro no rollback dizendo que o arquivo foi copiado
     $rollback[Strings::ROLLBACK_ROUTES_BUILDER_TAG] = EscapeHelper::encode(file_get_contents(PathHelper::getRouteBuilderPath()));
     //constroi o array do routesBuilder
     $routeBuilder = RouteBuilder::getRoutesBuilder(PathHelper::getRouteBuilderPath());
     //verifica se foi construido um array valido
     if ($routeBuilder !== false) {
         //inclui as novas rotas ao array do routeBuilder
         $routeBuilder = RouteBuilder::includeToRoutesBuilder($routeBuilder, PathHelper::getModuleRoutesPath($moduleType, $moduleName));
         //verifica se o array de rotas continua vĂ¡lido
         if ($routeBuilder !== false) {
             //tenta salvar o novo array do routesBuilder
             if (RouteBuilder::saveRoutesBuilder($routeBuilder, PathHelper::getRouteBuilderPath()) != false) {
                 //Cria registro no rollback dizendo que o arquivo foi copiado
                 $rollback[Strings::ROLLBACK_OLD_ROUTES_TAG] = EscapeHelper::encode(file_get_contents(PathHelper::getLaravelRoutesPath()));
                 //tenta construir o arquivo de rotas gera baseado no array savo do routesBuilder
                 if (RouteBuilder::buildRoutes($routeBuilder) === false) {
                     $errors[] = Strings::ERROR_ROUTES_FILE_SAVE;
                 }
             } else {
                 $errors[] = Strings::ERROR_ROUTES_BUILDER_SAVE;
             }
         } else {
             $errors[] = Strings::ERROR_INCLUDE_TO_ROUTES_BUILDER_SAVE;
         }
     } else {
         $errors[] = Strings::ERROR_ROUTES_BUILDER_GEN;
     }
     return !empty($errors) ? $errors : true;
 }