Depuis SPIP 4.0 [1] On peut déclarer dans la globale $GLOBALS['spip_pipeline']['all']
des fonctions qui seront appelées sur tous les pipelines.
Exemple :
$GLOBALS['spip_pipeline']['all'] = '||raydebug_trace_pipelines';
La fonction indiquée reçoit simplement les arguments des pipelines appelés, pas leur nom. Elle doit donc retrouver le nom du pipeline appelé en interrogeant la pile d’appel obtenue par debug_backtrace()
.
Exemple récupérant aussi d’autres infos relatives à l’appel du pipeline :
$trace = debug_backtrace();
while ($t = array_shift($trace) and $t['function'] !== 'pipeline');
if ($t) {
$pipeline = reset($t['args']);
$avant_pipeline = (empty($t['args'][1]) ? null : $t['args'][1]);
$apres_pipeline = reset($args);
$file = $caller['file'];
$line = $caller['line'];
}
Ce pipeline est utile surtout pour le debug puisqu’il permet de tracer les appels des pipelines.