Appliquer un patch au Core ou aux modules Drupal avec Composer
Pré-requis
Installation de composer
Les patch s'applique avec composer.
Pour appliquer un patch avec composer, vous devez disposer du package cweagans/composer-patches.
Pour installer le package dans votre projet.
composer require cweagans/composer-patches
Ensuite vous devrez disposer d'un patch, soit il vous faudrait créer ce patch, soit le récupérer sur Drupal.org.
Composer.json
Il faut d'abord déclarer le patch dans le fichier composer.json, dans la section extra/patches.
"extra": {
"patches": {
"package": {
"Ajouter une description au patch": "url-du-patch"
}
}
}
Ensuite pour appliquer le patch, veuillez lancer la commande
composer install
ou encore la commande
composer update
Si vous souhaitez, en plus d'appliquer le patch, mettre à jour le core et les modules de Drupal.
Patcher le core Drupal
Pour patcher le core Drupal, les patchs s'empilent dans la clé "drupal/core", les uns derrière les autres :
"extra": {
"patches": {
"drupal/core": {
"Layout builder, make blocks reusable": "./patches/core/drupal9-layout-builder-reusable-custom.patch",
"Display entity title in manage display tab": "https://www.drupal.org/files/issues/2021-06-25/3036862-10.patch",
"Exposed filters get values from url when ajax is on": "https://www.drupal.org/files/issues/2022-04-04/drupal-3121172-17.patch",
}
},
}
Patcher un module
Pour patch un module, on crée un clé en se basant du mon du module, et on déclare le patch.
"extra": {
"patches": {
"drupal/ckeditor": {
"Add title support for link CKEDITOR plugin": "./patches/ckeditor/node_title_as_link_text.patch",
}
},
}
Pour appliquer plusieurs patchs à un même module, comme pour le drupal/core, on les empilent les uns derrière les autres.
"extra": {
"patches": {
"drupal/elasticsearch_connector": {
"Indices [.geoip_databases] use and access is reserved for system operations": "https://www.drupal.org/files/issues/2021-08-25/elasticsearch_connector-hide-system-indices-3229401.patch",
"Partial Search Issue": "https://www.drupal.org/files/issues/elasticsearch_connector_2912308_0.patch",
}
},
}