コード例 #1
0
 /**
  * Escreve arquivo de rollback do modulo
  *
  * @param array $rollbackArray
  * @param string $rollbackFile
  * @param bool $buildPHPHeader
  * @return bool|int|string
  */
 public static function buildRollback(array $rollbackArray, $rollbackFile, $buildPHPHeader = true)
 {
     if ($buildPHPHeader) {
         //build php route header
         $phpStringArray = "<?php" . chr(13) . chr(13) . "return" . chr(13) . chr(13) . "[" . chr(13);
     } else {
         //Recursive fix
         $phpStringArray = "[" . chr(13);
     }
     //for each module loaded
     foreach ($rollbackArray as $key => $value) {
         if (!is_array($value)) {
             //Se value não for um array
             //adiciona a rota domodulo e como chave tipo-nome
             $phpStringArray .= '\'' . $key . '\' => \'' . $value . '\',' . chr(13) . chr(13);
         } else {
             //Se value for um array
             $phpStringArray .= '\'' . $key . '\' => ' . RollbackManager::buildRollback($value, null, false) . ',' . chr(13) . chr(13);
         }
     }
     if ($buildPHPHeader) {
         //fecha o array de rollback
         $phpStringArray .= "];";
         try {
             //salva arquivo por cima do conteudo do arquivo anterior
             return file_put_contents($rollbackFile, str_replace(file_get_contents($rollbackFile), $phpStringArray, file_get_contents($rollbackFile)));
         } catch (Exception $e) {
             return false;
         }
     } else {
         //fecha o array de rollback
         $phpStringArray .= "]" . chr(13);
         return $phpStringArray;
     }
 }
コード例 #2
0
 /**
  * Constroi o arquivo de rollback
  *
  * @param string $moduleType
  * @param string $moduleName
  * @param array $rollback
  * @return array|bool
  */
 public static function createRollbackFile($moduleType, $moduleName, array &$rollback)
 {
     $errors = [];
     //Cria registro no rollback dizendo que o arquivo foi copiado
     $rollback[Strings::ROLLBACK_OLD_ROLLBACK_TAG] = EscapeHelper::encode(file_get_contents(PathHelper::getModuleRollbackFile($moduleType, $moduleName)));
     if (RollbackManager::buildRollback($rollback, PathHelper::getModuleRollbackFile($moduleType, $moduleName)) == false) {
         $errors[] = Strings::ERROR_CREATE_ROLLBACK_FILE;
     }
     return !empty($errors) ? $errors : true;
 }