https://github.com/lcube45/drupal8-composer
https://github.com/lcube45/drupal8-composer
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/lcube45/drupal8-composer
- Owner: lcube45
- Created: 2019-09-27T08:45:01.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-09-27T08:45:45.000Z (over 6 years ago)
- Last Synced: 2025-05-22T22:40:55.566Z (about 1 year ago)
- Size: 1.95 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Drupal 8 et Composer
https://www.drupal.org/docs/develop/using-composer
https://getcomposer.org/
Composer est un gestionnaire de dépendances pour PHP.
## Références et sources
https://www.lullabot.com/articles/drupal-8-composer-best-practices
## Pourquoi utiliser Composer
Drupal 8 Core utilise Composer pour gérer ses dépendances (ex: Symfony, Guzzle, …)
Composer permet de :
- Identifier l’emplacement
- Télécharger
- Valider les dépendances
- Inclure les dépendances
## Initialiser un nouveau projet
https://github.com/drupal-composer/drupal-project
```
composer create-project drupal-composer/drupal-project:8.x-dev --stability dev --no-interaction
```
**Arborescence projet obtenu** :
```
/.git
/drush
/scripts
/vendor
/web
.gitignore
composer.json
composer.lock
```
## Ajouter un module
Ajouter les sources du module dans votre code source.
```
composer require drupal/modulename:^1.0
```
Ajouter un module en ciblant un commit spécifique
```
composer require drupal/modulename:dev-[branch]#[commit-hash]
```
Comprendre les déclarations de versions pour Composer : https://getcomposer.org/doc/articles/versions.md
## Mettre à jour un module
Mettre à jour le code source du module en tenant compte des dépendances
```
composer update drupal/modulename --with-dependencies
```
Attention ceci ne met à jour que votre code source, il faut lancer l'update de Drupal
si besoin de mises à jour en base de données :
```
drush updatedb
```
Vérifier le statut des différents modules
```
composer outdated
```
## Supprimer un module
Attention au préalable de le désinstaller via l’UI ou via Drush ou via Drupal Console
```
composer remove drupal/modulename
```
## Régénérer le fichier composer.lock
```
composer update nothing
```
## Gérer les modules spécifiques au développement
```
composer require --dev drupal/modulename
```
Installer les dépendances en ignorant les modules de développement
```
composer install --no-dev
```
## Versionner le fichier composer.lock
https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file
## Patcher des modules
Un plugin de gestion de patches est disponible pour composer : https://github.com/cweagans/composer-patches
```
composer require cweagans/composer-patches:^1.0
```
Il faut ensuite ajouter une collection de patches à la section extra de notre fichier composer.json
```
"extra": {
"patches": {
"drupal/core": {
"2631468 - Menu subtrees in menu blocks show all subitems regardless of the active menu item": "https://www.drupal.org/files/issues/drupal-n2631468-95.patch"
},
"drupal/panelizer": {
"2793841 - Properly integrate with Panels IPE": "https://www.drupal.org/files/issues/panelizer-panels-ipe-tempstore-id.patch",
"2664574 - Add support for Taxonomy Term entities": "https://www.drupal.org/files/issues/2664574-26.patch"
},
"drupal/panels": {
"2793801 - Allow modules to influence the IPE tempstore ID": "https://www.drupal.org/files/issues/2793801-9.patch"
}
}
}
```
## Supprimer le module à patcher, récupérer le module et appliquer le patch
```
composer update none
```
## Générer un artefact pour livraison en production (build)
```
composer install --no-dev --optimize-autoloader
```