Instalando Drupal 8 con composer
Seguro que muchos de vosotros habeis empezado hacer vuestras primeras instalaciones en drupal 8 y aunque la nueva estructura de carpetas mejora respecto a drupal 7, siempre podemos mejorar cosas.
 
Una de las primeras cosas, que me di cuenta al instalar mi primer drupal 8, fue el poco o nulo uso que le dábamos al composer, Algo que es, sin duda muy útil y muy usado en symfony.
 
Sí, tenemos drush, tenemos drupal console, pero aun así creo que composer puede darnos muchas mas ventajas.
 
Así que, que tal si vemos como funciona este concepto de instalar drupal 8 con composer y asi podréis ver lo fácil y rápido que resulta.
 
DESCARGANDO DRUPAL
 
Lo primero que tenemos que hacer es, sin duda, descarganos drupal y para esto usaremos este comando dentro de la carpeta donde queráis instalar el proyecto 
 
composer create-project drupal-composer/drupal-project:8.x-dev nombre-del-proyecto —stability dev —no-interaction
 
 
Con este comando, lo que conseguiremos es descargar un drupal y todos los requisitos que necesita drupal 8 para que funcione correctamente.
 
Podreis ver que ademas de un drupal, este comando descarga drush y console para poderlo usar de forma local.
 
NUEVO SISTEMA DE CARPETAS
 
Unos de los primeros cambios que vamos a notar es el sistema de carpetas. Si nos dirigimos dentro de la carpeta que nos acaba de descargar el comando anterior encontraremos esto:
 
Como vemos en la imagen anterior, encontraremos una lista de carpetas que probablemende no reconozcamos como un Drupal, pero no os preocupeis porque esta es la primera capa.
  • - drush, donde definiremos la política de drush.
  • - scripts, donde se define un pequeño script que ayuda a composer a crear los archivos settings.php y services.yml.
  • - vendor, donde estan todos los bundles que necesitaremos para usar drupal. Entre una larga lista, encontraremos symfony, drush y drupal-console.
  • - web, donde encontraremos nuestro drupal.
 
INSTALANDO DRUPAL
 
Una vez nos hemos paseado por las carpetas para curiosear que se nos ha descargado, nos dirigiremos a “web” e instalaremos drupal usando el comando “drush site-install” como hemos echo hasta ahora
 
cd nombre-del-proyecto/web
drush site-install --db-url=mysql://{username}:{password}@localhost/{database}
Y voliá, ya tenemos nuestro drupal 8 instalado y listo para usar, pero… esto es todo? bueno.. hasta aquí hemos solamente explicado como usar/instalar drupal con composer, pero, que implica esto para nosotros?
 
USANDO COMPOSER.JSON
 
El echo de que usemos este sistema y no otro es porque con composer viene este archivo “composer.json”, un archivo que en symfony se usa para instalar bundles (entre otras cosas) y para poder hacer deployments, actualizaciones… de una forma rápida y sencilla.
 
Hasta ahora, cuando hemos querido instalar un modulo nuevo, hemos usado “drush en” o “drupal module:install “ y luego comitearlo para poder hacer los deployments.
 
Bueno ahora el concepto cambia, lo que haremos es añadir un nuevo requerimiento o requisito a nuestro proyecto utilizando este comando.
 
composer require drupal/nombre_del_modulo 8.*
composer update drupal/nombre_del_modulo
 
Podeis ver la lista de modulos para usar en composer require aqui
 
El primer comando lo que hace es añadir el “modulo seleccionado” al archivo composer.json dentro del apartado “require” y el segundo lo descarga y lo coloca donde le corresponde
 
//Archivo composer.json despues de ejecutar el comando require
"require": {
  "composer/installers": "^1.0.20",
  "drupal-composer/drupal-scaffold": "^2.0.1",
  "cweagans/composer-patches": "~1.0",
  "drupal/core": "~8.0",
  "drush/drush": "~8.0",
  "drupal/console": "~0.10",
  "drupal/devel": “8.*"
  “drupal/nomde_de_modulo”: “8.*"
},
 
En realidad, podríamos añadirlo nosotros manualmente al composer.json, pero para evitar posibles fallos de escritura o de cualquier otro tipo, es mejor que usemos el comando anterior.
 
ACTUALIZANDO DRUPAL Y MODULOS CONTRIBUIDOS
 
Otra de las ventajas de utilizar este método, es sin duda a la hora de actualizar. Al tener todo el proyecto bajo la supervision de composer, este se encarga de descargar y actualizar todo lo que sea necesario y todo con un solo comando.
 
composer update
 
Esto es muy útil a la par que peligroso, por un lado nos actualiza todo nuestro Drupal (core & módulos ) sin necesidad de mucho esfuerzo y pero por otro nos actualiza todo nuestro Drupal sin mucho esfuerzo.
 
No, no me he vuelto loco, la ventaja es a la vez una desventaja, porque al ponerlo tan fácil, es muy fácil que actualicemos algo que no queríamos actualizar, esto es algo bastante común ya os aviso, así que tener mucho cuidado de usar este comando a la ligera.
 
Siempre podréis establecer las versiones concretas para que nos os actualize la toda aplicación y os la rompa
 
USANDO REPOSITORIOS GIT
 
Probablemente aun, no os hayáis dado cuenta de la potencia que puede tener este método, pero ahora veremos porque me gusta tanto.
 
Si os vais a la raíz del proyecto, veréis que tenéis un git ya iniciado y si abrís el archivo .gitignore, veréis como hay una lista de de carpetas ya configuradas que se ignoran.
 
Como podéis ver se ignora todo el core, los vendors y como no, todos los contribuidos, y ahora es cuando os preguntareis, porque?
 
Al igual que vosotros, yo también añadía los módulos contribuidos al repositorio, pero ahora esto ya no tiene sentido.
 
Y la explicación es bastante sencilla, todos lo módulos, temas y librerías varias que nuestro proyecto vaya a necesitar, ya estarán incluidos en nuestro composer.json y lo único que vamos a necesitar es comitear ese archivo y hacer un pull de ese archivo en producción y composer se encargara de todo.
 
git pull
composer update
drush updb
 
Con estas tres sencillas lineas podremos hacer un deployment en producción de la forma mas sencilla posible, sin necesidad de tener todos los módulos y demás contribuidos en nuestro repositorio.
 
Pero no os quedéis solo con el ejemplo del deployment, podéis pensar mas allá y crear un esqueleto Drupal para que cada vez que empecéis un nuevo proyecto ya tener todos los módulos que desde un principio ya sabéis que vais a usar y únicamente configurando un composer.json base.
 
Haz click en "SIGUIENTE" para ver consejos y soluciones

Páginas

Total de votos: 118

Entradas relacionadas

Comentarios (0)

Deja un comentario