Da X a Drupal 8, migra tutto e vivi sereno

Post on 19-Feb-2017

628 views 0 download

transcript

DA X A DRUPAL, MIGRA TUTTO E VIVI

SERENO

LUCA LUSSO

SENIOR DRUPAL DEVELOPER @WELLNET

Twitter: @lussolucaLinkedin: it.linkedin.com/pub/luca-lusso/29/3a9/1a2/Drupal.org: www.drupal.org/u/lussolucawww.drupal.org/project/develwww.drupal.org/project/xhprof

AGENDAMigrate e Migrate Drupal, a che punto siamo?Cosa cambia in Drupal 8?Migrare da Drupal 6Migrare da un'altra sorgente dati

MIGRATE E MIGRATE DRUPAL, A CHEPUNTO SIAMO?

Marcato come experimental, finito per 8.1.0No UI (nel core)Necessita di alcuni moduli contrib

migrate_plus (gruppi di migrazioni, eventoprepare_row)migrate_tools (UI gruppi di migrazioni, comandidrush)migrate_upgrade (UI e comando drush per migrareda Drupal 6 e 7)

COSA CAMBIA IN DRUPAL 8?

Definizione migrazioni in yml e non in classiUso massivo di plugin (source, process, destination)Uso di eventi Symfony per il ciclo di vita di unamigrazione

MIGRARE DA DRUPAL 6Quasi tutto supportato (Views no però...)I moduli definiscono i template di migrazione

drush migrate-upgrade --legacy-db-url=mysql://root:root@localhost/drupal6 --legacy-root=http://drupal6 --configure-only

drush mi --all

DEMO

MIGRARE DA UN'ALTRA SORGENTE DATI

Migriamo dati provenienti da un web service RESTUn nuovo SourcePlugin, due nuovi ProcessPluginCreiamo nuovi nodi del CT weather

IL WORKFLOW

I dati vengono estratti da una API di terze parti(GoogleAPI, Facebook Graph, ...)Il modullo di migrazione mappa queste informazioninel nostro modelloI dati vengono esposti nelle pagine del nostro sito

I FILE COINVOLTI - MAPPING

migrate.migration.weather.yml

I FILE COINVOLTI - SOURCE PLUGIN

OWMSource.php

I FILE COINVOLTI - PROCESS PLUGIN

ToFahrenheit.phpBuildTitle.php

IL FILE DI MAPPINGmigrate.migration.weather.yml

È un file .YML che contiene diverse informazioniNome migrazioneGruppoSorgente dei datiMapping tra sorgente e destinazione

IL FILE DI SOURCE

OWMSource.php

Permette di estrarre le informazioni dalla sorgente (fileCSV, database, API, ...)Estende SourcePluginBase e ne reimplementa alcunimetodi metodi fondamentali

OVERRIDE

initializeIterator()

OVERRIDE

initializeIterator()getIds()

OVERRIDE

initializeIterator()getIds()__toString()

OVERRIDE

initializeIterator()getIds()__toString()fields()

I FILE DI PROCESS

Permettono di processare i dati ottenutiUtili quando vogliamo effettuare delle modifiche(concatenare stringhe, cambiare formato, ...)Estendono ProcessPluginBaseReimplementano il metodo transform()

I FILE DI PROCESS

ToFahrenheit.phpConverte la temperatura da gradi Celsius a Fahrenheit

I FILE DI PROCESS

BuildTitle.phpConcatena la data della previsione al titolo

DEMO

Hackathon & Drupal school -> domani

Grazie!

Domande?