Cette fonction charger_fonction()
permet de récupérer le nom d’une fonction surchargeable de SPIP. Lorsqu’une fonction interne suffixée de _dist()
est surchargée (en la recréant sans ce suffixe), ou lorsqu’on surcharge l’ensemble d’un fichier contenant une fonction de la sorte, il faut pouvoir récupérer la bonne fonction au moment de son exécution.
C’est cela que fait charger_fonction()
. Elle retourne le nom de la fonction à exécuter.
$mafonction = charger_fonction('mafonction','repertoire');
$mafonction();
Principe de recherche
La fonction se comporte comme suit :
- si la fonction
repertoire_mafonction
a déjà été déclarée, elle est retournée. - sinon
repertoire_mafonction_dist
, - sinon elle tente de charger un fichier
repertoire/mafonction.php
puis - retourne
repertoire_mafonction
si existe, - sinon
repertoire_mafonction_dist
, - sinon renvoie
false
.
Argument de la forme dossier/fichier
L’argument repertoire
peut être un sous-dossier : inc/utils
auquel cas c’est le fichier inc/utils/mafonction.php
qui est chargé s’il existe, comme expliqué ci dessus.
Mais si ce fichier n’existe pas, alors, charger_fonction
charge le fichier inc/utils.php
s’il existe et renvoie la fonction inc_utils_mafonction_dist
ou inc_utils_mafonction
définie dans ce fichier.
Ainsi, il est possible de définir plusieurs fonctions dans ce même fichier et de les appeler par charger_fonction
.