Glosario de términos para trabajar con Drupal

@davidjguru
4 min readApr 29, 2018

--

Versión 1.1.1
Descripcion: Inicial
Cambios: No lleva (lanzamiento)
Control de versiones:
https://github.com/davidjguru/drupal-glossary-of-terms

Este documento nace originalmente de la brillante y feliz idea de tomar notas de todo o casi todo para posteriormente intentar recopilarlas de manera unificada. A partir de ahí, su objetivo fundamental es el de intentar ser de utilidad para alguien que quiera realizar una inmersión en el universo de Drupal.

Si una persona extrae aprovechamiento de este índice de términos, se habrán cumplido los fines principales para los que fue creado.

Algunos términos son específicos del contexto de Drupal, otros son matizaciones o usos particulares de términos que también se usan en otras plataformas y otros en definitivas son tal cual los reconocemos e identificamos en otros espacios tecnológicos, con la salvedad de que aquí intentamos anclarlos al “suelo material” del trabajo en proyectos basados en Drupal.

Por comodidad, se mantienen los términos en el lenguaje en el que suele usarse en el día a día: así, se registra “widget” por ser de uso diario y normalizado en inglés, pero se registra “servicio” en castellano por el mismo motivo. Más allá de que el glosario está redactado en castellano, el objetivo del mismo es familiarizarse con los conceptos de la manera más natural y grata posible, por lo que se mantienen sus usos más habituales (al menos en el contexto de quien esto escribe).

La intención es que el documento crezca y se expanda incorporando cada vez nuevos términos y más elementos útiles para el aprendizaje, por eso se ofrece como material iterativo e incremental, y se procesa además dentro de un repositorio de Github para facilitar su versionado. El cuadro inicial de este post muestra la información de la versión emulando el versionado semántico de software+ que aunque no resulta de aplicación exacta (el cambio en la versión mayor no implica incompatibilidad en este caso), puede ser útil para dar contexto.

Índice de términos
API
Composer
Plugin

API

Al igual que en otros espacios tecnológicos, en el contexto de Drupal una API sigue siendo -de una manera intuitiva- una colección de funciones que a modo de capa de abstracción, facilitan que un software interactúe con otro software. Ok.

¿Qué particularidades alcanza entonces en Drupal? ¿Qué matices tiene? Bueno, podríamos decir para empezar que Drupal ha llegado a ser un sistema de propósito general algo complejo, por lo que podemos analizarlo desde diferentes dimensiones, capas o subsistemas: podríamos hablar de Drupal a nivel de módulos, de servicios, de plugins, de clases…y una forma más de comprender Drupal es hacerlo desde la dimensión de sus APIs (sí, en plural).

En Drupal co-existen una gran cantidad de recursos disponibles para interconectar, ampliar y modificar el funcionamiento de la plataforma, y para facilitar su uso y experimentación, tantas funcionalidades se encuentran agrupadas en bloques temáticos dentro de un contexto determinado y específico: existen APIs para trabajar con Plugins, con Formularios, con Caché…y cada una de ella provee de su propio set de métodos, clases e interfaces para operar sobre ese contexto.

Algunos ejemplos:

Aquí tienes la lista de APIs disponibles en Drupal+

Y aquí tienes una lista de APIs y recursos disponibles organizados por su utilidad+.

Composer

Esencialmente, es un gestor de dependencias: una herramienta para declarar que recursos externos requiere tu proyecto y en que versión se necesitan, así como para posteriormente localizarlos, descargarlos y emplazarlos justo donde hayas determinado.

En el tránsito de Drupal 7 a Drupal 8, se incluyó Composer como estándar de facto para la gestión de dependencias, proveniente de otros frameworks PHP-based de referencia como Symfony o Laravel, asimilando Drupal a las tendencias en desarrollo de proyectos con PHP. Aunque ya se podía usar en Drupal 7, como se expone en este artículo de Pedro Cambra+.

Composer es una herramienta usada para realizar una instalación de Drupal, aplicar parches, instalar actualizaciones, módulos contribuidos y librerías de cualquier tipo. Se organiza a partir de un fichero composer.json donde todo se declara y a partir de ahí la aplicación se encarga de resolver todo lo que se haya especificado dentro del fichero json. Composer sale a buscar los recursos al repositorio de paquetes de PHP, Packagist.org+ Además, puedes subir tus propias librerías/módulos custom a Packagist y ofrecerlos como una dependencia más a resolver por parte de Composer.

Disponible para su instalación en https://getcomposer.org/+ y preparado para ser instalado bien localmente (por proyecto) o de manera global+ en el sistema.

Comandos disponibles en Composer+

Plugin

Aunque “plugin” - intuitivamente - nos evoque más a una variante de “módulo” (como en el contexto de WordPress por ejemplo), en el entorno de Drupal a partir de la versión 8.x, un plugin tienen un enfoque algo diferenciado respecto a módulo. Veamos en que consiste.

Conceptualmente y hablando de manera abstracta, un plugin siempre será una implementación software que cubre una funcionalidad y que se añade a otro sistema mayor como una manera de concretar un uso más específico, más concreto. Esta pieza nueva funcionará a partir de interacciones con el sistema mayor a través de llamadas y conexiones de métodos/funciones/APIs. Como si el sistema mayor tuviese un propósito general y el pequeño subsistema uno más específico al que se llama para cosas más concretas. Ok, esta interpretación es habitual en nuestro día a día y nada marciana. Ahora toca asentarla en el contexto Drupal, ya que en cierta manera nos hemos quedado en un plano conceptual confuso, a medio camino entre “módulo” y “servicio”.

El de Plugin puede ser, con diferencia, uno de los conceptos más complejos para asentar de manera diferenciada con otros términos de uso similar. Tal vez por eso la mejor aproximación inicial que podemos realizar es a partir de esa raíz común que mantiene con otros conceptos de Drupal: Estamos hablando de componentes software reutilizables. Partiremos de ahí.

--

--

@davidjguru

I’m @davidjguru this is my off-broadway channel, speaking about Drupal like in https://www.therussianlullaby.com or https://davidjguru.github.io but in spanish.