Qu’est-ce qu’un pipeline ?

Un pipeline permet de faire transiter un code entre plusieurs intermédiaires (des fonctions) pour le compléter ou le modifier.

Déclaration dans un plugin

Chaque plugin peut utiliser un pipeline existant. Pour cela, il déclare son utilisation dans le fichier plugin.xml de la sorte :

<pipeline>
   <nom>header_prive</nom>
   <inclure>cfg_pipeline.php</inclure>
</pipeline>
  • Nom : indique le nom du pipeline à utiliser,
  • Inclure : indique le nom du fichier qui contient la fonction à exécuter au moment de l’appel du pipeline (prefixPlugin_nomPipeline()).

Déclaration hors plugin

Une utilisation d’un pipeline en dehors du cadre d’un plugin reste possible. Il faut alors déclarer son utilisation directement dans le fichier config/mes_options.php :

$GLOBALS['spip_pipeline']['nom_du_pipeline'] .= "|nom_de_la_fonction";
// Exemple d'ajout dans le pipeline "insert_head" :
$GLOBALS['spip_pipeline']['insert_head'] .= "|nom_de_la_fonction";
 
function nom_de_la_fonction($flux) {
	return $flux .= "Ce texte sera ajoute";
}

La fonction appelée doit être connue au moment de l’appel du pipeline, le plus simple étant de la déclarer comme ici pour la fonction nom_de_la_fonction dans le fichier d’option.

À noter que SPIP utilise un cache des pipelines utilisés et que toute nouvelle déclaration nécessite de recalculer ce cache. Cela se fait en visitant la page « Gestion des plugins » dans l’espace privé (?exec=admin_plugin).

Auteur Matthieu Marcillaud Publié le : Mis à jour : 12/03/23

Traductions : English, français