Drupal Features

Guida Drupal per installare il modulo Features

Per molto tempo Drupal non ha avuto un meccanismo vero e proprio per l'esportazione di configurazioni tra più installazioni. Alcuni moduli Drupal integrano, infatti, dei meccanismi di import/export, ma sono specifici per ogni singolo modulo. Con il modulo Features si introduce in Drupal la possibilità di gestire più agilmente le versioni tra un sito in sviluppo, in staging ed in produzione.

Drupal Features Package

Cosa si può fare con il modulo Features?

Il modulo per Drupal Features permette di gestire insiemi di funzionalità in Drupal. Una funzionalità è un insieme di configurazioni, anche di più moduli Drupal, che soddisfano un certo caso d'uso.

Il modulo Features fornisce una interfaccia utente ed una API per poter gestire al meglio l'esportazione e l'importazione di tali caratteristiche.

Un pacchetto di funzionalità (feature) si comporta come un normale modulo per Drupal e, ad esempio, può servire per creare una galleria fotografica o un blog senza dover riconfigurare da zero il CMS ogni volta che si ha bisogno di tale funzionalità.

Drupal Features Diagram

Scaricare e installare il modulo Features

Per prima cosa è necessario scaricare l'ultima versione del modulo Features dal sito http://drupal.org/project/features e quindi procedere all'installazione come per ogni altro modulo, ovvero scompattando l'archivio nella directory dei moduli e abilitandolo dalla pagina di amministrazione dei moduli di Drupal. Una valida alternativa è usare Drush per scaricare ed installare il modulo con il comando

drush dl features

e quindi

drush en features

 Drupal Features Diagram Drupal Features Diagram

Dopo aver installato il modulo appariranno le voci relative a Features nel menu di amministrazione di Drupal.

Creare una "feature"

Per creare una feature, ovvero un pacchetto di funzionalità, cliccate sulla voce Create feature, così da accedere alla sezione dove scegliere i componenti per configurare la feature. Date alla vostra feature un nome, una descrizione e una versione, come per un modulo, perché una feature, effettivamente, si comporta proprio come un modulo.

A questo punto si procede con la selezione dei componenti da esportare, ad esempio i tipi di contenuto, mostrando l'elenco di tutti i tipi di contenuto configurati e che potranno essere scelti per far parte della feature. Man mano che si aggiungono funzionalità la lista di quanto verrà esportato sarà aggiornata in tempo reale.

Dopo aver scelto tutto quello che serve per comporre la feature, basterà cliccare il pulsante Download feature per scaricare il file contenente la configurazione scelta.

Esportare variabili

In alcuni casi può essere necessario dover esportare anche particolari variabili di configurazione di Drupal. Per fare ciò si deve usare il modulo Strongarm.

Grazie a Drush lo possiamo scaricare ed installare velocemente, analogamente a quanto già fatto per il modulo Features:

drush dl strongarm && drush en strongarm

In questo modo la pagina di creazione della feature mostrerà anche le variabili di sistema e ne permetterà l'esportazione.

Abilitare una "feature"

Per poter disporre della feature per prima cosa si dovrà scomprimere il pacchetto precedentemente creato nella directory dei moduli. Ci sono quindi due modi per abilitare la feature appena creata: attraverso l’interfaccia di amministrazione del modulo Features oppure tramite la pagina di amministrazione dei moduli per attivarla come fosse un modulo qualunque. Così facendo, nella pagina di amministrazione del modulo Features, la feature risulterà abilitata.

L'amministrazione del modulo Features

L'interfaccia di amministrazione del modulo Features, oltre a permettere la creazione delle feature, visualizza l'elenco delle feature esistenti ed il loro stato che può assumere diversi valori:

  • default
  • overridden
  • needs review
  • rebuildable
  • rebuilding

Quando si installa / abilita una feature lo stato sarà default, mentre assumerà il valore di overridden nel momento in cui verranno modificate le impostazioni del sito (nel database) e queste saranno diverse da quanto specificato nella feature. Nel caso in cui ci fossero anche modifiche nel codice, lo stato diventerà needs review.

Programmazione manuale delle feature

Uno degli aspetti più interessanti del modulo Features è la possibilità di poter modificare la feature integrandone personalizzazioni specifiche come, ad esempio, parametri di configurazione piuttosto che altri moduli.

Il modulo Features gestisce anche le versioni dei pacchetti generati. Si tratta di una caratteristica molto utile soprattutto quando si hanno più siti da gestire oppure si deve aggiornare la versione in produzione di un sito a partire da quella in staging.

Features e Drush

Per concludere ecco alcuni comandi utili per gestire il modulo Features tramite Drush:

  • drush features
    Mostra tutte le feature disponibili nel sito ed il loro stato.
  • drush features-export [feature name] [component list]
    Scrive una nuova feature con i componenti scelti.
  • drush features-update [feature name]
    Aggiorna una feature esistente per includere eventuali modifiche o novità (ad esempio una nuova vista).
  • drush features-revert [feature name]
    Ripristina i compontenti di una feature al valore predefinito.
  • drush features-diff [feature name]
    Visualizza le differenze tra il codice della feature e la configurazione nel database. Necessita del modulo Diff per Drupal.

Drupal Features - Creazione di pacchetti per la configurazione di funzionalità avanzate in Drupal 6 e in Drupal 7.