19 Ottobre, 2014 | Di Wellnet

Come convertire un modulo Drupal 7 in Drupal 8?

Come convertire un modulo Drupal 7 in Drupal 8?

Eccoci qui a cercare di risolvere una questione di sicuro interesse per chi gestisce siti Drupal 7 e che, prima o poi dovrà fare un upgrade alla nuova versione del nostro CMS preferito: qual è il metodo più veloce e meno “doloroso” per fare l’upgrade (o porting) dei nostri moduli? Occorre riscrivere da capo tutto il codice? Esiste qualcosa di automatico e indolore? La risposta ci viene fornita dalla community Drupal attraverso il modulo Drupal Module Upgrader (presente qui ). Premessa: il modulo, allo stato attuale e considerando che Drupal 8 è ancora in fase beta,non converte sempre automaticamente e totalmente un modulo Drupal 7 nella sua relativa controparte Drupal 8, ma sicuramente fornisce degli ottimi strumenti per velocizzare questa laboriosa procedura. Come specificato dal suo mantainer occorrono contributi per aggiungere funzionalità e renderlo in futuro sempre più automatico e intelligente.

Cos’è Drupal Module Upgrader?

È uno script che scansiona il codice sorgente di un modulo Drupal 7 e restituisce come output il codice che richiede una revisione con in aggiunta i riferimenti link per procedere con la conversione, in modo da essere compatibile con le API di Drupal 8. Dove possibile convertirà automaticamente il codice! Queste due funzionalità di analisi e di upgrade automatico sono state aggiunte come comandi Drush (il famoso coltellino svizzero di Drupal). Se non sapete cos’è drush vi invito ad approfondire l’argomento qui e successivamente di installarlo, vi farà guadagnare un sacco di tempo con i suoi numerosi comandi da riga di comando, soprattutto per chi deve gestire progetti su vari ambienti e vuole avere sempre sincronizzati file e database, feature e molto altro. Per Drupal 8 , la versione consigliata di Drush è la 7.x-dev (per Drupal 7 o inferiori va benissimo la 6). A questo link è possibile trovare tutti i comandi che fornisce Drush schematizzati e ordinati graficamente. Dopo questa breve parentesi su Drush, torniamo al modulo in questione e scopriamo come installarlo correttamente.

Installazione e configurazione

RequisitiDrush (per utilizzare i comandi che fornisce il modulo), Composer (per installare le librerie da cui dipende)

1 - Scaricare e installare Composer, utilizzando il seguente link.

2 - Scaricare e installare l’ultima versione di Drush (7.x-dev), utilizzando il seguente link.

3 - Scaricare il modulo Drupal Module Upgrade utilizzando il seguente link e copiarlo nella cartella modules della vostra installazione di Drupal 8.

4 - Lanciare da terminale il comando composer install all’interno della cartella del modulo ( modules/drupalmoduleupgrader) in modo da installare tutte le sue dipendenze (pharborist,phpcs, yaml...).

5 - Dopo aver completato i punti precedenti è possibile abilitare il modulo lanciando da terminale il comando : drush en drupalmoduleupgrader -y

Esempio di utilizzo

1 - Copiare la cartella del modulo Drupal 7 di cui si vuole fare il porting all’interno della cartella modules della vostra installazione Drupal 8.

2- Giunti a questo punto possiamo utilizzare il primo dei due comandi che il modulo fornisce : drush dmu-analyze nomemodulo Il comando, come anticipato, scansiona il codice del modulo passato come parametro nel comando e stampa a video una lista di utili riferimenti su come procedere per la conversione.

3 - Se invece vi ritenete fortunati e volete “tentare” un upgrade automatico è possibile lanciare il secondo comando: drush dmu-upgrade nomemodulo

Il comando tenterà la conversione del codice e stamperà a video un elenco di variazioni che sono state applicate al vostro modulo Drupal 7 per renderlo compatibile alle nuove API di Drupal 8. Attraverso comodi strumenti come git sarà possibile vedere dove il codice è stato modificato nel dettaglio. Successivamente basterà provare ad attivare il modulo (drush e nomemodulo) e sperare che non ritorni alcun errore. Ovviamente questo secondo metodo non sempre vi porterà il risultato sperato al primo colpo (ma anche al secondo o al terzo :-) ) ma sicuramente vi fornirà delle indicazioni sul codice da cui partire come base per renderlo definitivamente compatibile.

In conclusione, il primo metodo (analyze) è quello più consigliato per i newbie in modo da prendere confidenza con tutte le nuove API della versione 8, ma con il passare del tempo, i contributi dei mantainers e della community aumenteranno le funzionalità e l’affidabilità del secondo metodo(upgrade) che diventerà quello più utilizzato per risparmiare tempo in tutta questa procedura.

Wellnet
Wellnet

Wellnet è una nuova realtà nel panorama delle agenzie digitali italiane: 70 expertise complementari e integrate, con sedi a Milano, Torino Cuneo e Modena, frutto della fusione di tre realtà di successo preesistenti.