Dans mes thèmes hook_preprocess_page()
et hook_preprocess_html()
fonctions personnalisés, j'ai souvent besoin d'identifier les mêmes informations. Plutôt que d'exécuter essentiellement la même chose si l'instruction vérifie les deux identifient les mêmes informations, il serait beaucoup plus logique de le faire une seule fois dans les deux, puis de transmettre ces informations à l'autre fonction de prétraitement. Comment puis-je faire ceci? J'ai essayé ce qui suit mais cela n'a pas fonctionné:
function myTheme_preprocess_page(&$vars){
$vars['myValue'] = 7;
}
function myTheme_preprocess_html(&$vars){
//$vars['myValue'] should equal 7...
}
Je l'ai également essayé dans l'autre sens (en définissant la valeur dans la fonction html de prétraitement puis en la récupérant dans la fonction de prétraitement de la page), mais cela n'a pas fonctionné non plus. Ce qui soulève une question connexe: dans quel ordre ces fonctions de prétraitement, euh, sont-elles traitées? Il me semble que la fonction de prétraitement des pages précède celle en html, est-ce correct?
static
traitement comme la première réponse. et les paramètres légers peuvent en fait être plus rapides car vous n'avez pas la surcharge d'appel de fonction pour chaque ensemble de variables, juste la première fois lors d'un appel à partir de la fonction principale. Et évidemment, les parties principales (nœud et page) ne sont définies qu'une seule fois.