5d533fd7a80e078580608ce005fd805520e7c312
[lhc/web/www.git] / www / ecrire / iterateur / php.php
1 <?php
2
3
4 /***************************************************************************\
5 * SPIP, Systeme de publication pour l'internet *
6 * *
7 * Copyright (c) 2001-2017 *
8 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
9 * *
10 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
11 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
12 \***************************************************************************/
13
14 /**
15 * Gestion de l'itérateur PHP
16 *
17 * @package SPIP\Core\Iterateur\PHP
18 **/
19
20
21 if (!defined('_ECRIRE_INC_VERSION')) {
22 return;
23 }
24
25
26 /**
27 * Créer une boucle sur un itérateur PHP
28 *
29 * Annonce au compilateur les "champs" disponibles, c'est à dire
30 * 'cle', 'valeur' et toutes les méthodes de l'itérateur désigné.
31 *
32 * @param Boucle $b
33 * Description de la boucle
34 * @param string $iteratorName
35 * Nom de l'itérateur à utiliser
36 * @return Boucle
37 * Description de la boucle complétée des champs
38 */
39 function iterateur_php_dist($b, $iteratorName) {
40 $b->iterateur = $iteratorName; # designe la classe d'iterateur
41 $b->show = array(
42 'field' => array(
43 'cle' => 'STRING',
44 'valeur' => 'STRING',
45 )
46 );
47 foreach (get_class_methods($iteratorName) as $method) {
48 $b->show['field'][strtolower($method)] = 'METHOD';
49 }
50
51 /*
52 foreach (get_class_vars($iteratorName) as $property) {
53 $b->show['field'][ strtolower($property) ] = 'PROPERTY';
54 }
55 */
56
57 return $b;
58 }