Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

Basculer un projet Drupal 8 existant sous Composer

De AJLSM
Aller à la navigation Aller à la recherche


Voir la documentation : https://www.flocondetoile.fr/blog/basculer-un-projet-drupal-8-existant-sous-composer

Drush doit-être installé.

Ajout des modules

Il est possible de récupérer la liste des modules à installer avec la commande suivante :

drush pml --no-core | grep "Enabled" | awk -F "(" '{print $2}' | awk -F ")" '{print $1}' | xargs -i echo composer require drupal/{}

La sortie dans le terminal ressemble à ceci :

composer require drupal/addtocalendar
composer require drupal/back_to_top
composer require drupal/backup_migrate
composer require drupal/blazy

Il faut ensuite l'adapter, si nécessaire, pour que la commande fonctionne. Par exemple : php composer.phar au lieu de composer.

La commande "require" doit être lancée "relativement" à l'endroit où se trouve composer.phar. Par exemple :

php ../composer.phar require drupal/libraries


Important :
Certaines dépendances ont besoin de version plus ancienne des modules. Dans ce cas, il faut désinstaller le module dont la version est trop descente pour les dépendances, ré-installer les versions supportées, et installées les dépendances..

Ensuite, il faut ajouter les librairies, le thème et les fichiers locaux.

Ajout des librairies

Pour ajouter les libraries dans la gestion des dépendances, on peut choisir entre deux solutions :

Intégration dans composer.json

Pour chaque librairie, il faut ajouter les informations (illustrées dans l'exemple ci-dessous) dans le fichier composer.json, :

"repositories": [
	{
	  "type": "package",
	  "package": {
		"name": "usrz/bootstrap-languages",
		"type": "drupal-library",
		"version": "dev-master",
		"dist": {
		  "url": "https://github.com/usrz/bootstrap-languages/archive/master.zip",
		  "type": "zip"
		}
	  }
     }
],
[...]

Ensuite, on lance la commande :

php composer.phar require usrz/bootstrap-languages

Ajout du plugin composer : Drupal Libraries Installer.

Cette méthode permet de travailler avec les dernières versions des librairies.

Voir la documentation ici : https://packagist.org/packages/balbuf/drupal-libraries-installer. Et https://github.com/composer/installers#custom-install-paths

Les principales commandes :

Ajout de l'installeur :

composer require balbuf/drupal-libraries-installer

Ajouts des librairies dans composer.json.

Par exemple:

"extra": {
       "drupal-libraries": {
            "flexslider": "https://github.com/woocommerce/FlexSlider/archive/2.6.4.zip",
            "chosen": "https://github.com/harvesthq/chosen/releases/download/v1.8.2/chosen_v1.8.2.zip",
            "blazy": "https://github.com/dinbror/blazy/archive/master.zip",
            "jquery-hoverIntent": "https://github.com/briancherne/jquery-hoverIntent/archive/master.zip",
            "cropper": "https://github.com/fengyuanchen/cropper/archive/master.zip",
            "colorbox": "https://github.com/jackmoore/colorbox/archive/master.zip",
            "jquery.cycle2": "https://github.com/malsup/cycle2/archive/master.zip",
            "jquery.cycle": "https://github.com/malsup/cycle/archive/master.zip",
            "json2": "https://github.com/douglascrockford/JSON-js/archive/master.zip",
            "slick": "https://github.com/kenwheeler/slick/archive/master.zip"   
        },
        "installer-paths": {
            [...]
            "web/libraries/{$name}": ["type:drupal-library"],
            [...]
       }

Il est aussi possible de renseigner une version spécifique de la librarie de la façon suivante, en précisant la relation avec l'installeur :

"repositories": [
	{
	  "type": "package",
	  "package": {
		"name": "dinbror/blazy",
		"version": "1.8.2",
		"type": "drupal-library",
		"extra": {
		  "installer-name": "blazy"
		},
		"source": {
		  "type": "git",
		  "url": "https://github.com/dinbror/blazy",
		  "reference": "1.8.2"
		}
	  }
    }
],
[...]