Complementos de Composer para desarrolladores Drupal

Como desarrolladores de Drupal en constante evolución, hemos estado en el proceso de avanzar hacia un flujo de trabajo basado en Composer para administrar nuestras bases de código de proyectos Drupal. Si bien (normalmente) es un salto fácil pasar de "drush dl" a "composer require" para los módulos y temas contribuidos en Drupal, hay otra oportunidad significativa que hemos de aprovechar durante esta evolución que debería considerarse. 

Todos estamos familiarizados con el concepto de que los módulos en Drupal extienden la funcionalidad del sitio Drupal; También deberíamos aceptar el hecho de que existe una clase completa de dependencias de Composer que amplían la funcionalidad de Composer. Estos se llaman apropiadamente "complementos de Composer" (composer plugins).

Composer Plugins

Si su proyecto Drupal está utilizando la drupal/recommended-project o drupal-composer/drupal-project (o similar), entonces ya está utilizando los complementos de Composer. La segunda parte de este artículo mostrará algunos complementos adicionales de Composer que quizás desee considerar agregar a su base de código de Drupal.

Agregar un nuevo complemento Composer es normalmente un proceso de dos pasos. Primero, use "composer require" para agregar el complemento a su proyecto. El segundo paso generalmente (pero no siempre) implica agregar alguna configuración de complemento a la sección "extra" de su proyecto composer.json. 

Complementos útiles de Composer para proyectos de Drupal

Deberías tener

composer/installers

  • Descripción: permite colocar dependencias en directorios que no sean /vendor/. 
  • Disponibilidad: Incluida como parte de la plantilla composer drupal/recommended-project (a través de drupal/core-recommended), parte de la plantilla predeterminada drupal-composer/drupal-project.
  • Clave de configuración: installer-paths

drupal/core-composer-scaffold

  • Descripción: coloca los archivos predeterminados de andamio de Drupal fuera del directorio /core/ y permite modificaciones en los archivos de andamios.
  • Disponibilidad: Incluido como parte de la plantilla en drupal/recommended-project, parte de la plantilla predeterminada de drupal-composer/drupal-project.
  • Clave de configuración: drupal-scaffold

cweagans/composer-patches

  • Descripción: aplica automáticamente parches (tanto locales como remotos) a las dependencias. 
  • Disponibilidad: Incluido como parte de la plantilla predeterminada drupal-composer/drupal-project.
  • Claves de configuración: patches, patches-file, enable-patching, patches-ignore.

Vale la pena que consideres

zaporylie/composer-drupal-optimizations

  • Descripción: Proporciona un aumento del rendimiento de Composer para proyectos Drupal al ignorar las etiquetas de Symfony heredadas. 
  • Disponibilidad: Incluido como parte de la plantilla predeterminada drupal-composer/drupal-project.
  • Claves de configuración: composer-drupal-optimizations.

topfloor/composer-cleanup-vcs-dirs

  • Descripción: Elimina automáticamente directorios .git para dependencias clonadas. Solo es necesario cuando las dependencias están comprometidas con el repositorio Git del proyecto. 
  • Disponibilidad: instale como lo haría con cualquier otra dependencia de Composer.
  • Claves de configuración: ninguna.

szeidler/composer-patches-cli 

  • Descripción: Complemento complementario para cweagans/composer-patches que permite la adición de parches (y otras funciones) desde la línea de comandos.
  • Disponibilidad: instale como lo haría con cualquier otra dependencia de Composer.
  • Claves de configuración: ninguna.

oomphinc/composer-installers-extender

  • Descripción: Complemento complementario para composer/installers que permite que cualquier tipo de paquete arbitrario (como paquetes npm) sea definido y luego manejado por el complemento composer/installers.
  • Disponibilidad: instale como lo haría con cualquier otra dependencia de Composer.
  • Claves de configuración: installer-types.

joachim-n/composer-manifest

  • Descripción: Crea un archivo simple "composer-manifest.yaml" en la raíz del proyecto que enumera todas las dependencias (y sus números de versión exactos) utilizados actualmente en el proyecto.
  • Disponibilidad: instale como lo haría con cualquier otra dependencia de Composer.
  • Claves de configuración: ninguna.

hirak/prestissimo

  • Descripción: aumento del rendimiento de Composer, permite descargas paralelas de dependencias durante los comandos de Composer. No será necesario en Composer 2.x.
  • Disponibilidad: instale como lo haría con cualquier otra dependencia de Composer.
  • Claves de configuración: ninguna.

No es necesario para desarrolladores experimentados.

drupal/core-project-message

  • Descripción: Permite que el texto se muestre después de que se hayan completado los comandos "composer create" y "composer install".
  • Disponibilidad: Incluido como parte de la plantilla de drupal/recommended-project.
  • Clave de configuración: drupal-core-project-message