コード例 #1
0
ファイル: ConfigImporter.php プロジェクト: papillon-cendre/d8
 /**
  * Handles processing of missing content.
  *
  * @param array $context
  *   Standard batch context.
  */
 protected function processMissingContent(array &$context)
 {
     $sandbox =& $context['sandbox']['config'];
     if (!isset($sandbox['missing_content'])) {
         $missing_content = $this->configManager->findMissingContentDependencies();
         $sandbox['missing_content']['data'] = $missing_content;
         $sandbox['missing_content']['total'] = count($missing_content);
     } else {
         $missing_content = $sandbox['missing_content']['data'];
     }
     if (!empty($missing_content)) {
         $event = new MissingContentEvent($missing_content);
         // Fire an event to allow listeners to create the missing content.
         $this->eventDispatcher->dispatch(ConfigEvents::IMPORT_MISSING_CONTENT, $event);
         $sandbox['missing_content']['data'] = $event->getMissingContent();
     }
     $current_count = count($sandbox['missing_content']['data']);
     if ($current_count) {
         $context['message'] = $this->t('Resolving missing content');
         $context['finished'] = ($sandbox['missing_content']['total'] - $current_count) / $sandbox['missing_content']['total'];
     } else {
         $context['finished'] = 1;
     }
 }