當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Migration::clearInterruptionResult方法代碼示例

本文整理匯總了PHP中Drupal\migrate\Entity\Migration::clearInterruptionResult方法的典型用法代碼示例。如果您正苦於以下問題:PHP Migration::clearInterruptionResult方法的具體用法?PHP Migration::clearInterruptionResult怎麽用?PHP Migration::clearInterruptionResult使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Drupal\migrate\Entity\Migration的用法示例。


在下文中一共展示了Migration::clearInterruptionResult方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: rollback

 /**
  * {@inheritdoc}
  */
 public function rollback()
 {
     // Only begin the rollback operation if the migration is currently idle.
     if ($this->migration->getStatus() !== MigrationInterface::STATUS_IDLE) {
         $this->message->display($this->t('Migration @id is busy with another operation: @status', ['@id' => $this->migration->id(), '@status' => $this->t($this->migration->getStatusLabel())]), 'error');
         return MigrationInterface::RESULT_FAILED;
     }
     // Announce that rollback is about to happen.
     $this->getEventDispatcher()->dispatch(MigrateEvents::PRE_ROLLBACK, new MigrateRollbackEvent($this->migration));
     // Optimistically assume things are going to work out; if not, $return will be
     // updated to some other status.
     $return = MigrationInterface::RESULT_COMPLETED;
     $this->migration->setStatus(MigrationInterface::STATUS_ROLLING_BACK);
     $id_map = $this->migration->getIdMap();
     $destination = $this->migration->getDestinationPlugin();
     // Loop through each row in the map, and try to roll it back.
     foreach ($id_map as $map_row) {
         $destination_key = $id_map->currentDestination();
         if ($destination_key) {
             $map_row = $id_map->getRowByDestination($destination_key);
             if ($map_row['rollback_action'] == MigrateIdMapInterface::ROLLBACK_DELETE) {
                 $this->getEventDispatcher()->dispatch(MigrateEvents::PRE_ROW_DELETE, new MigrateRowDeleteEvent($this->migration, $destination_key));
                 $destination->rollback($destination_key);
                 $this->getEventDispatcher()->dispatch(MigrateEvents::POST_ROW_DELETE, new MigrateRowDeleteEvent($this->migration, $destination_key));
             }
             // We're now done with this row, so remove it from the map.
             $id_map->deleteDestination($destination_key);
         }
         // Check for memory exhaustion.
         if (($return = $this->checkStatus()) != MigrationInterface::RESULT_COMPLETED) {
             break;
         }
         // If anyone has requested we stop, return the requested result.
         if ($this->migration->getStatus() == MigrationInterface::STATUS_STOPPING) {
             $return = $this->migration->getInterruptionResult();
             $this->migration->clearInterruptionResult();
             break;
         }
     }
     // If rollback completed successfully, reset the high water mark.
     if ($return == MigrationInterface::RESULT_COMPLETED) {
         $this->migration->saveHighWater(NULL);
     }
     // Notify modules that rollback attempt was complete.
     $this->getEventDispatcher()->dispatch(MigrateEvents::POST_ROLLBACK, new MigrateRollbackEvent($this->migration));
     $this->migration->setStatus(MigrationInterface::STATUS_IDLE);
     return $return;
 }
開發者ID:ddrozdik,項目名稱:dmaps,代碼行數:51,代碼來源:MigrateExecutable.php


注:本文中的Drupal\migrate\Entity\Migration::clearInterruptionResult方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。