2017-05-18 8 views
0

私はXMLからノードをインポートしているDrupal 8のカスタムマイグレーションがあります。今私は移行の前に、事前インポート機能を追加したいと思います。 Drupal 7では、preImport()が移行しました - Drupal 8メソッドは何ですか?私はEvents added to migration processについてこの記事を見つけましたが、どのように進めるのかはまだ分かりません...ヒントありがとう!移行前インポートイベント/イベントリスナー

ここにあなたがあなた自身のイベントサブスクライバーを作成する必要が

答えて

0

、ショートガイド:ここ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 
    } 

} 

あなたのEventSubscriber(my_migration/my_migration.services.yml)のためのサービスを登録する必要があります。

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

注:あなたが変更する必要がある場合フィールドベースごとに移行する場合は、プロセスプラグイン(https://www.drupal.org/docs/8/api/migrate-api/migrate-process-plugins)を使用してください。

関連する問題