2017-05-18 4 views
0

그래서 Drupal 8 마이 그 레이션이 있습니다. 여기서는 XML에서 노드를 가져오고 있습니다. 이제 마이그레이션 이전에 미리 가져 오기 기능을 추가하려고합니다. 드루팔 (Drupal 7)에서 사전 이주 (Drupal 8 방법은 무엇입니까? 나는 Events added to migration process에 관하여이 기사를 발견했다, 그러나 아직도 진행하는 방법에 나에게 명확하지 않다 ... 어떤 끝든지를위한 감사합니다! https://www.chapterthree.com/blog/how-to-register-event-subscriber-drupal8마이그레이션 사전 가져 오기 이벤트/이벤트 리스너

다음

EventSubscriber (my_migration/SRC/EventSubscriber/PreImportEvent.php)의 구체적인 예 : : 이제

<?php 

namespace Drupal\my_migration\EventSubscriber; 

use Drupal\migrate\Event\MigrateEvents; 
use Symfony\Component\EventDispatcher\EventSubscriberInterface; 

/** 
* Class PreImportEvent 
* 
* @package Drupal\my_migration\EventSubscriber 
*/ 
class PreImportEvent implements EventSubscriberInterface { 

    /** 
    * @return mixed 
    */ 
    public static function getSubscribedEvents() { 
    $events[MigrateEvents::PRE_IMPORT][] = [ 
     'preImport', 
     0, 
    ]; 
    return $events; 
    } 

    /** 
    * @param $event 
    */ 
    public function preImport($event) { 
    // Do whatever you want with $event 
    } 

} 

답변

0

당신은 짧은 가이드 여기에 자신의 이벤트 가입자를 작성해야

services: 
    my_migration.subscriber.pre_import: 
    class: Drupal\my_migration\EventSubscriber\PreImportEvent 
    tags: 
     - { name: event_subscriber } 

주 : 당신은 당신의 EventSubscriber (my_migration/my_migration.services.yml)에 대한 서비스를 등록 할 필요가 당신은 변경해야하는 경우 필드 기반 당 마이그레이션을 수행하려면 프로세스 플러그인 (https://www.drupal.org/docs/8/api/migrate-api/migrate-process-plugins)을 사용하는 것이 좋습니다.

관련 문제