Methode : IncludeBuffered
ClasseWiki
WikiNi >= ? (présent dans la 0.4.1)
Résumé : inclut un fichier php de sorte qu'il puisse s'exécuter comme si il était à l'intérieur de la
ClasseWiki.
Description :
string IncludeBuffered(
string $filename[,
string $notfoundText[,
array $vars[,
string $path]]] )
Inclut le fichier
$filename et en retourne les données affichées (par
echo(),
print() etc.).
$filename sera exécuté comme s'il faisait partie de la
ClasseWiki, c'est à dire qu'il aura accès à toutes ses méthodes et attributs via la variable
$this. C'est la technique qui est utilisée pour l'exécution des modules (actions, handlers et formatters).
Si aucun contenu n'est généré, la valeur retournée sera
$notfoundText. Par défaut ce sera la valeur
false, permettant ainsi de savoir si le fichier a été trouvé mais n'a pas généré de résultat (retourne une chaine vide '') ou s'il n'a pas été trouvé (valeur
false ou
$notfoundText). Pour détecter le cas où le fichier n'a pas été trouvé, utilisez le triple égal (
===) ou la fonction
PhP is_bool() (lien vers php.net).
Vous pouvez passer au script exécuté des variables via le tableau
$vars. Les variables seront alors extraites dans l'environnement local (voir
la fonction extract() sur php.net) de sorte que le script puisse y accéder directement par leur nom.
$path indique les différents répertoires (relatifs ou absolus) dans lesquels chercher
$filename, ceux-ci doivent être séparés par ":". IncludeBuffered cherchera alors dans ces répertoires après le fichier
$filename et exécutera le premier qu'elle trouve.
Exemple :
- echo $this->IncludeBuffered("formatters/wakka.php", "Impossible de trouver le formateur \"wakka\"", array('page' => $page));
Voir aussi : Action (exécution d'une action),
Method? (exécution d'un handler) et
Format? (exécution d'un formatter)
Suggestions de développement :
Je suppose que la dernière vérification de
$notfoundText sert à distinguer les cas où il n'y a aucun résultat en sortie de ceux où le fichier n'a pas été trouvé (comme je l'ai expliqué dans la description ci-dessus)... Dès lors il me semble qu'il serait plus clair que la valeur par défaut de
$notfoundText soit
false... --
LordFarquaad