Experts en Drupal

Tot el què cal saber sobre el mòdul Features de Drupal

Avui us fem una breu presentació del mòdul Features, una eina molt potent que ens permet reaprofitar funcionalitats entre tots els nostres projectes fets amb Drupal.

Tot el què cal saber sobre el mòdul Features de Drupal.

Què és el mòdul de Drupal Features?

El mòdul Features va nèixer amb l’objectiu de poder versionar i reaprofitar funcionalitats en projectes diferents. En efecte, el mòdul ens permet exportar conjunts d’entitats de Drupal (content types, taxonomies, views, etc.) a codi PHP en forma de “mòduls de features”. A més a més, com que les features són codi PHP, les podem versionar amb eines com el Git per poder gestionar millor els canvis que es van fent al llarg del temps. Normalment, per crear una feature, es treien un conjunt d’entitats, les quals juntes satisfan un cas d’ús. No obstant, es recomana no abusar d’aquest mòdul ja que podriem acabar en un infern de dependències circulars entre features que ens impediria desactivar-les.

Un cop tinguem creada una feature, la podrem copiar a un nou projecte i activar-la allà. Automàticament ens crearà els content types, vistes, … que estiguin configurades a la mateixa. Per tant, ens haurem estalviat un munt de feina. Cal tenir en compte que si anem fent canvis a les entitats “featuritzades” mitjançant l’administració de Drupal, veurem que la nostra feature quedarà en estat “overriden”. Aleshores tindrem dues opcions perquè tornin en estat “default”:

  • Realitzar una revert sobre la feature: Amb aquesta operació desfarem tots els canvis que hàgem fet manualment amb l’administració de Drupal i es restablirà tot tal i com marca el codi PHP de la feature (Code => Database).
  • Realitzar un update/recreate sobre la feature: Amb aquesta opció es sobrescriurà la feature segons la configuració que hi hagi en aquell moment a la base de dades (Database => Code).

Per altra banda, malgrat no va ser dissenyat amb aquest objectiu, cal destacar que molta gent fa servir aquest mòdul com una eina de desplegament entre entorns de desenvolupament i de producció. Això ho fan perquè d’aquesta manera aconsegueixen superar el principal problema de Drupal: el contingut i la configuració de les entitats contenidores es guarden en base de dades de forma barrejada. No obstant, hem de tenir en compte que no és la eina mes adequada per aquest propòsit ja que ens podem trobar amb múltiples inconvenients derivats d’aquest ús. Us posem dos casos d’exemple:

  • Cas 1: Al desactivar una feature no s’esborren els tipus de contingut automàticament. Veure aquesta incidència.
  • Cas 2: Després de fer uns canvis a una feature (a un tipus de contingut li hem eliminat un camp i hem afegit un) i de copiar-la a un nou entorn, veurem que el nou camp s’ha afegit, però el camp que hem esborrat continua creat. Veure aquesta incidència.

Links d’interès:

Comparteix aquest article

Articles Relacionats