Digital

Trabajo en equipo con Features en Drupal: agrupar y exportar funcionalidad

3 Mins de lectura

Dependiendo de la envergadura de los proyectos web construidos con Drupal, en ocasiones los departamentos de CMS empleamos mucho tiempo y esfuerzo en desarrollar módulos de funcionalidad para nuestros portales. Dichas funcionalidades pueden ser comunes a varios proyectos, por ejemplo un blog o una galería de imágenes, por lo que lo ideal es que podamos reutilizar el trabajo realizado de un proyecto a otro.

Por otro lado, al disponer de varios entornos por proyecto (desarrollo, validación y producción) también necesitamos agilidad y control a la hora de hacer despliegues para causar el menor trastorno posible al cliente que trabaja en el sitio en producción.

Para solucionar esto, Drupal dispone del módulo Features que permite encapsular funcionalidades que hemos desarrollado para después poderlas reutilizar y realizar pases de unos entornos a otros de una forma más ágil y sencilla. Las features se pueden activar y desactivar de la misma manera que cualquier módulo de Drupal. Pero no todo va a ser tan fácil, trabajar en equipo con features puede llegar a ser complicado si no tenemos claros sus conceptos básicos y cómo trabajar con ellas.

En este primer artículo definiremos qué es una feature, su estructura y los pasos a seguir para crear una desde cero. Para comenzar, vamos con la parte fácil:

Cómo crear nuestra primera feature en Drupal

En primer lugar, debemos tener en cuenta:

¿Qué puedo exportar como Features?

Podemos exportar configuración, nunca contenido. Por ejemplo, podemos guardar la configuración de menús y vocabularios pero no sus enlaces y términos de taxonomía respectivamente. Se pueden añadir componentes de distintos tipos: campos, tipos de contenido, rules, permisos, taxonomías, vistas, etc.

¿Qué funcionalidad voy a agrupar en ella?

Antes de crear una feature tenemos que analizar qué conjunto de configuraciones vamos a incluir y cuál será su estructura para hacerlo de la forma más lógica y ordenada. Por ejemplo, un módulo de funcionalidad que podríamos exportar en una sola feature sería un blog (con su tipo de contenido para crear artículos, roles específicos, reglas para la publicación de artículos o avisos a usuarios, etc). Es importante pensar primero en la estructura para así evitar tener configuraciones del mismo módulo de funcionalidad dispersas en varias features que generen dependencias innecesarias y nos sea muy complicado exportar.

Cómo crear una feature desde cero

Para crear una nueva feature iremos a admin/structure/features/create

Aparecerá una pantalla en la que podremos ir añadiendo los componentes que queramos incluir (ej.: tipos de contenido, campos, permisos, etc).

crear feature drupal

Autodetección

Según vamos seleccionando componentes de forma manual, el sistema de autodetección nos va añadiendo automáticamente los que nos falten. Por ejemplo, si añadimos un tipo de contenido nuevo, el sistema detectará todos los campos del mismo y los añadirá de forma automática. Es muy útil para evitar dejarnos componentes por el camino pero también conviene revisar que no haya añadido componentes indeseados. Esta opción se puede desactivar desde “opciones avanzadas”.

En la imagen anterior podemos ver los componentes añadidos por autodetección sombreados en azul.

Dependencias

Si no indicamos lo contrario, el sistema de autodetección nos añadirá los módulos u otras features de las que dependerá nuestra nueva feature. Esto implica que esos módulos o features tendrán que estar activados para poder activarla. Es muy importante revisar esta parte para no añadir dependencias innecesarias. Si no lo hacemos, nos puede ocurrir que entremos en un bucle de dependencias  y no podamos activar correctamente la funcionalidad de nuestra feature.

Una vez que hemos dado nombre a nuestra feature, indicado la versión y añadidos los componentes podemos descargar el código o bien generarlo en una carpeta de nuestra instalación de Drupal. Por lo general, esta carpeta deberá estar dentro del repositorio de código para poder tener un control de los cambios.

La estructura de la carpeta de la feature será igual que la de cualquier módulo de Drupal, se crearán como mínimo, los archivos .info y .module. Después de generar o descargar el código, tendremos la feature disponible para poderla exportar y activar en otros entornos o proyectos.

En este punto, ya conocemos los pasos para crear una nueva feature y podemos comprobar que es una tarea relativamente sencilla cuando definimos bien qué funcionalidades vamos a agrupar. En el siguiente artículo veremos qué ocurre cuando sobrescribimos la configuración de las features y cómo debemos trabajar cuando el desarrollo involucra a varios miembros del equipo.

 

En Hiberus contamos con un departamento de más de 60 desarrolladores Drupal. Nuestros más de 10 años de experiencia nos ha hecho trabajar en los principales casos de éxito Drupal a nivel nacional. Cuéntanos tu proyecto y conoce a nuestro equipo experto en Drupal.

2 posts

Sobre el autor
Project Manager en Hiberus Digital.
Artículos

SOMOS EXPERTOS EN DRUPAL

Hemos desarrollado los proyectos más importantes de Drupal en España.
Contamos con un departamento de más de 60 desarrolladores Drupal. Descubre cómo podemos ayudarte.

¿Te ayudamos?

Artículos relacionados
Digital

Jerarquía visual: 5 aspectos clave para mejorar tus prototipos

4 Mins de lectura
La forma en la que los diseñadores de experiencia de usuario jerarquizan el contenido de una página web repercute directamente en la…
Digital

12 herramientas para proyectos UX en remoto

5 Mins de lectura
El trabajo remoto es una alternativa ideal cuando por motivos de tiempo, presupuesto, o causas ajenas a nosotros no podemos desplazarnos para investigar ni…
Digital

Marketing Cloud Intelligence y CDP: cómo conectarlos para explotar los datos

3 Mins de lectura
Gestionar la enorme cantidad de datos con los que las organizaciones tienen que tratar puede resultar costoso y complejo. En este panorama,…

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *