Composer pour gérer les dépendances de sites

Source : https://www.drupal.org/docs/develop/using-composer/using-composer-to-man...

Télécharger drupal avec Composer (dl drupal)

3 facons de le faire (au choix) :

Fichiers squelettes ou "Scaffold files"

dans le dossier drupal mais pas du dossier "core" : .htaccess, robots.txt, index.php, update.php... Ils ne seront pas maj via "drupal/drupal" mais drupal-composer/drupal-project les gère avec drupal-composer/drupal-scaffold

Via drupal-composer/drupal-project

Dl dans un dossier "my_site_name_dir" le drupal-composer/drupal-project et lance composer install:

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

Plus à https://github.com/drupal-composer/drupal-project

Via les 2 autres projets (voir la page en anglais - ici, vague résumé)

composer create-project drupal/drupal my_site_name_dir 

D'abord : composer global require hussainweb/drupal-composer-init
Pour drupal 8 : composer drupal-init
Pour drupal 7 : composer drupal-init --drupal-7
Puis composer install

Ajout de modules, thèmes et leurs dépendances

Ajout de modules, thèmes

enlightened Si besoin, définir avant le dépos composer sur drupal.org (si non installé via drupal-composer/drupal-project' ou 'hussainweb/drupal-composer-init').

Etre à la racine de l'installation drupal (dossier web par défaut) : composer require drupal/<modulename>  (ex: composer require drupal/token)
et composer dl et ses dépendances (maj de composer.json).

En précisant la version : composer require "drupal/<modulename>:<version>"

Gestion sémantiques de versions

tous les projets (modules et thèmes des utilisateurs) n'utilisent pas encore de vrai système de version sémantiques. Le service Composer de Drupal.org traduit les shémas de version de project de contrib en un format semver que Composer utilise. Cette "cale semver" est plus fluide en cas de changement de standard des modules contrib : chaque version majeur du core de drupal a une fin séparée (pour éviter le mélange des cores).

Recherche et navigation

composer search views 
composer browse drupal/token 

Définir Drupal.org comme dépos Composer (si besoin)

enlightened inutile si installé via drupal-composer/drupal-project' ou 'hussainweb/drupal-composer-init').

Par défaut, Compposer utilise comme dépos (pour rechercher les paquets) Packagist.org, or les thèmes et modules drupal n'y sont pas (c'est Drupal qui les publie - un pour drupal 7 et l'autre pour drupal 8).
Dans le  composer.json du drupal on peux changer le dépos par défaut (ne pas confondre les différents composer.json : à la racine de son dépot, core/composer.json, ou celui d'un des modules), manuellement ou via commande.

  • Pour drupal 7 : url:https://packages.drupal.org/7
  • Pour drupal 8 : url:https://packages.drupal.org/8

Etre à la racine du dépos:  composer config repositories.drupal composer https://packages.drupal.org/7 

Choix des dossiers de dl

enlightened inutile si installé via drupal-composer/drupal-project' ou 'hussainweb/drupal-composer-init').

Maj

composer update drupal/core --with-dependencies

Divers liens

Pour installer composer : https://getcomposer.org/doc/00-intro.md

logo drush