Aujourd'hui composer semble s'imposer comme la manière 'recommandée' pour installer (ou plus précisément de télécharger) Drupal 8, tant pour le cœur de Drupal mais aussi pour les modules comme pour les thèmes.
Donc, pour commencer un nouveau projet sous Drupal 8, nous devrons télécharger le code avec composer et non plus avec Drush ou Drupal Console comme nous le faisions dans le passé. Bien entendu, nous pouvons toujours utiliser Drush ou DC pour activer (ou installer) les modules ou thèmes contrib, mais pas pour les télécharger.
Le principal atout de composer est de pouvoir administrer une liste toujours plus étendue de dépendances (comme de leurs sous-dépendances) et ainsi de s'assurer que les bonnes versions de chaque 'package' soient utilisées ou actualisées.
Il existe un template officiel pour installer Drupal 8 avec composer. Nous allons donc créer notre projet Drupal directement avec ce template qui est aussi disponible sur Packagist.
Installer composer
Tout d'abord il vous faudra installer Composer. Je vous invite à jeter un coup d'oeil sur Getting Started getcomposer.org pour installer Composer.
Installer Drupal 8 avec Composer
Pour créer un nouveau project Drupal 8 basé sur le template officiel, lancez la commande suivante:
# Lancer la commande composer create-project
composer create-project drupal-composer/drupal-project:8.x-dev my_project_name_dir --stability dev --no-interaction
# Se placer sur my_project_name_dir
cd my_project_name_dir
# Installer Drupal avec DrupalConsole
drupal site:install
N'oubliez pas de changer 'my_project_name_dir' avec le nom du répertoire où vous voulez installer Drupal.
Cette commande téléchargera le projet drupal-composer/drupal-project
depuis Packagist dans le répertoire 'my_project_name_dir'. Elle exécutera automatiquement composer install
qui téléchargera Drupal 8 et toutes ses dépendances.
En fait cette commande create-project
de composer est équivalent à faire un git clone https://github.com/drupal-composer/drupal-project.git my_project_name_dir
suivit d'un composer install
.
# create-project est équivalent à git clone et à composer install
git clone https://github.com/drupal-composer/drupal-project.git my_project_name_dir
composer install
Que fait ce template?
Lorsque vous installer le composer.json
certaines tâches sont exécutées:
- Drupal 8 est téléchargé dans le répertoire web/
- Autoloader est activé pour utiliser le composer autoloader dans vendor/autoload.php au lieu de celui qui vient par défaut avec Drupal (web/vendor/autoload.php)
- Les Modules (packages de type drupal-module) seront placés dans web/modules/contrib/
- Les Thèmes (packages de type drupal-theme) seront placés dans web/themes/contrib/
- Les Profiles (packages de type drupal-profile) seront placés dans web/profiles/contrib/
- Créer les fichiers settings.php and services.yml
- Créer le répertoire web/sites/default/files
- Installer la dernière version de Drush dans vendor/bin/drush
- Installer la dernière version de DrupalConsole (super !!!) dans vendor/bin/drupal.
- Créer les variables d'environnement sur base du fichier .env. Voyez le ficher .env.example.
Notez bien que Drupal será installé dans le répertoire 'my_project_name_dir/web/'
Ce template vient aussi avec un fichier .gitignore
qui ne prendra pas en compte le cœur de Drupal et les packages contrib (modules, thèmes, vendors …) dans le versionement de Git. Cela nous permettra d'avoir un repo Git plus petit et de passer notre projet à différents stages sans difficultés.
Et si je ne veux pas installer Drupal dans le répertoire web/?
Imaginons que nous devions installer Drupal dans le répertoire docroot/
au lieu de web/
.
Dans ce cas nous feront ce qui suit:
# 1. Télécharger le template du projet avec git
git clone https://github.com/drupal-composer/drupal-project.git my_project_name_dir
# 2. Changer les 'installer-paths' dans la section 'extra' de notre composer.json
cd my_project_name_dir
vi composer.json
# 3. Lancer composer install
composer install
Installer le projet Drupal
Comme nous l'avons vu plus haut, une fois que nous avons téléchargé le projet Drupal avec composer, nous pouvons installer Drupal avec la commande de DrupalConsole drupal site:install
ou bien aller directement sur notre site local (localhost://) pour installer notre site.
Plus d'infos
Gérez vos projets Drupal 8 avec Composer (Julien Dubreuil)
Installer Drupal 8 avec composer (Kevin Gautreau)
Using Composer with Drupal (Drupal Docs.)
Install Drupal 8 with Composer (Modules Unraveled)
Drupal 8 Composer Best Practices (Lullabot)
Tips for Managing Drupal 8 projects with Composer (Jeff Geerling)
Composer and Drupal are still strange bedfellows (Jeff Geerling)
[VIDEO] Basics of Composer with Drupal 8 (Alexei Rayu)
[VIDEO] Composer: what is it and how should Drupalers use it? (aPaddedCell)