Appliquer un patch au Core ou aux modules Drupal avec Composer

Language
Étiquettes
Temps de lecture
Environ 1 minute

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",
		}
	},
}

 

Sommaire