Proposer une amélioration de commentaire

Le commentaire à poster est au format «docblock» (de phpDoc) qui peut être enrichi de tags spécifiques pour SPIP.
Fichier
ecrire/public/references.php
Fonction
calculer_balise

    Nom ou pseudo de l'auteur de la proposition

Code original

/**
 * Calcule et retourne le code PHP d'exécution d'une balise SPIP
 *
 * Cette fonction qui sert d'API au compilateur demande à calculer
 * le code PHP d'une balise (cette fonction ne calcule pas les éventuels
 * filtres de la balise).
 *
 * Pour une balise nommmée `NOM`, elle demande à `charger_fonction()` de chercher
 * s'il existe une fonction `balise_NOM` ou `balise_NOM_dist`
 * éventuellement en chargeant le fichier `balise/NOM.php.`
 *
 * Si la balise est de la forme `PREFIXE_SUFFIXE` (cf `LOGO_*` et `URL_*`)
 * elle fait de même avec juste le `PREFIXE`.
 *
 * S'il n'y a pas de fonction trouvée, on considère la balise comme une référence
 * à une colonne de table SQL connue, sinon à l'environnement (cf. `calculer_balise_DEFAUT_dist()`).
 *
 * Les surcharges des colonnes SQL via charger_fonction sont donc possibles.
 *
 * @uses calculer_balise_DEFAUT_dist()
 *     Lorsqu'aucune fonction spécifique n'est trouvée.
 * @see  charger_fonction()
 *     Pour la recherche des fonctions de balises
 *
 * @param string $nom
 *     Nom de la balise
 * @param Champ $p
 *     AST au niveau de la balise
 * @return Champ
 *     Pile complétée par le code PHP pour l'exécution de la balise et de ses filtres
 **/
function calculer_balise($nom, $p) {
 
	// S'agit-t-il d'une balise_XXXX[_dist]() ?
	if ($f = charger_fonction($nom, 'balise', true)) {
		$p->balise_calculee = true;
		$res = $f($p);
		if ($res !== null and is_object($res)) {
			return $res;
		}
	}
 
	// Certaines des balises comportant un _ sont generiques
	if ($f = strpos($nom, '_')
		and $f = charger_fonction(substr($nom, 0, $f + 1), 'balise', true)
	) {
		$res = $f($p);
		if ($res !== null and is_object($res)) {
			return $res;
		}
	}
 
	$f = charger_fonction('DEFAUT', 'calculer_balise');
 
	return $f($nom, $p);
}

Le commentaire au format « docblock » peut être complété des éléments suivants sécifiques
à SPIP.

Sur un entête de fichier :

  • @package SPIP\Core\x (pour un fichier du core, x dépendant du fichier)
  • @package SPIP\Nom\x (pour un fichier de plugin, Nom étant le nom du plugin)

Sur un entête de fonction :

  • @pipeline x : indique que la fonction est une utilisation d’un pipeline
  • @pipeline_appel x : indique que la fonction appelle le pipeline indiqué
  • @balise : indique que la fonction est une compilation de balise
  • @filtre : indique un |filtre
  • @critere : indique que la fonction est une compilaiton de critère
  • @boucle : indique que la fonction est une compilaiton de boucle
Vous inscrire sur ce site

L’espace privé de ce site est ouvert aux visiteurs, après inscription. Une fois enregistré, vous pourrez consulter les articles en cours de rédaction, proposer des articles et participer à tous les forums.

Identifiants personnels

Indiquez ici votre nom et votre adresse email. Votre identifiant personnel vous parviendra rapidement, par courrier électronique.