Filtres issus de classes PHP

Une écriture peu connue permet aussi d’exécuter des méthodes d’une classe PHP. Si l’on demande un filtre « x::y », SPIP cherchera une classe PHP « filtre_x » possédant une fonction « y » exécutable. S’il ne trouve pas, il cherchera une classe « filtre_x_dist » puis enfin une classe « x ».

[(#BALISE|class::methode)]

Exemple

Imaginons une classe PHP définie comme ci-dessous. Elle contient une fonction (récursive par ailleurs) qui permet de calculer une factorielle (x! = x*(x-1)*(x-2)*...*3*2*1).

class Math{
  function factorielle($n){
    if ($n==0)
      return 1;
    else
      return $n * Math::factorielle($n-1);
    }
}

Elle peut être appelée comme ceci :

[(#VAL{9}|Math::factorielle)]
// renvoie 362880

Auteur Matthieu Marcillaud Publié le : Mis à jour : 09/11/09

Traductions : English, français