Usar composer en Drupal

Enviado por rpayanm el Fri, 20/01/2017 - 11:46
Drupal composer logo

Hace poco comencé un proyecto en drupal 8, con el código generado en Platform.sh, vi la estructura de directorio algo diferente a la que estoy acostumbrado a ver, pensé que era un "invento" de ellos, pero me puse a investigar y me descubrí que usan composer para generar la estructura, había usado pocas veces composer, pero fue necesario usarlo más en este proyecto, en este artículo muestro lo aprendido en el proceso.

¿ Qué es composer ?


Composer es una herramienta para gestionar dependencias en PHP. Esto permite declarar las dependencias de las librerías de tu proyecto y gestionarlas (instalarlas/actualizarlas) fácilmente.
... Composer está inspirado fuerteme por el npm de node y bundler de ruby.

Fuente

En resumidas cuentas composer te permite declarar las dependencias de tu proyecto en un archivo composer.json. Estas dependencias, las cuales instalarás a través de composer, pueden tener su propio archivo composer.josn y sus propias dependencias las cuales serán automáticamente manejadas e instaladas por composer.

Como usar composer en un proyecto de drupal
Drupal.org ofrece dos repositorios de composer (uno para drupal 7 y otro para drupal 8). En este artículo veremos como hacer con drupal 8.

Para iniciar un proyecto deberemos instalar composer y después ejecutar:

$ composer create-project drupal-composer/drupal-project:8.x-dev my-drupal-composer --stability dev --no-interaction

El valor "my-drupal-composer" es el nombre del directorio donde se creará el proyecto, entonces tendremos la siguiente estructura:
Estructura composer drupal

Como notarán todo el código de drupal estará en la carpeta web/ así que debemos apuntar nuestro servidor web (apache, nginx, ...) a esta carpeta.

Instalar un módulo o tema
Para instalar un módulo o tema y sus dependencias ejecutamos:

$ composer require drupal/<modulename>

Ejemplo para Admin Toolbar:

$ composer require drupal/admin_toolbar

Para una versión específica:
Este módulo cuenta actualmente con la versión 1.18 si queremos usar la 1.16:

$ composer require drupal/admin_toolbar:1.16

En el futuro, cuando sea soportado el versionado semántico por todos los proyectos en drupal.org, será mejor usar la versión de la forma MAJOR.MINOR.PATCH, sería entonces:

$ composer require drupal/admin_toolbar:1.16.0

Si queremos mantener la versión major hacermos:

$ composer require drupal/admin_toolbar:^1.0.0

En este caso cuando sea liberada a versión 2.0.0 no se actualizaría este módulo.

Actualizar el core y todos los módulos
Para actualizar el core y todos los módulo escribimos:

$ composer update

Actualizar un módulo o tema específico

$ composer update drupal/admin_toolbar

Eliminar un módulo o tema
Para eliminar deberemos desinstalarlo en drupal y después:

$ composer remove drupal/admin_toolbar

Si no hacemos esto por composer y borramos la carpeta cuando hagamos un composer update nos traería el proyecto de nuevo.

Bueno eso es todo, espero que les sea útil.