67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace nur\m;
 | |
| 
 | |
| use Iterator;
 | |
| 
 | |
| /**
 | |
|  * Interface IRowIterator: un itérateur pour lire le résultat d'une requête
 | |
|  */
 | |
| interface IRowIterator extends Iterator {
 | |
|   /** @return true si cet itérateur a déjà été parcouru jusqu'à la fin */
 | |
|   function isClosed(): bool;
 | |
| 
 | |
|   /** retourner toute les lignes du résultat sous forme de tableau */
 | |
|   function all(): array;
 | |
| 
 | |
|   /**
 | |
|    * retourner une liste de valeurs [$value] tel que $value = $row[$name] pour
 | |
|    * chaque ligne de résultat de {@link all()}
 | |
|    *
 | |
|    * NB: si $name===null, prendre le premier champ de $row
 | |
|    */
 | |
|   function allVals(?string $name=null): array;
 | |
| 
 | |
|   /**
 | |
|    * retourner la première ligne du résultat, ou $default si aucun élément
 | |
|    * n'est trouvé.
 | |
|    */
 | |
|   function first($default=null);
 | |
| 
 | |
|   /**
 | |
|    * retourner la valeur $row[$name] où $row est la valeur retournée par
 | |
|    * {@link first()}. Retourner $default si {@link first()} ne retourne
 | |
|    * pas de résultat
 | |
|    *
 | |
|    * NB: si $name===null, prendre le premier champ de $row
 | |
|    */
 | |
|   function firstVal(?string $name=null, $default=null);
 | |
| 
 | |
|   /**
 | |
|    * méthode de convenance pour récupérer le nombre de ligne affectées par un
 | |
|    * résultat. équivalent à first()["num_rows"]
 | |
|    */
 | |
|   function numRows(): int;
 | |
| 
 | |
|   /**
 | |
|    * méthode de convenance pour récupérer l'identifiant de la dernière ligne
 | |
|    * insérée. équivalent à first()["insert_id"]
 | |
|    */
 | |
|   function insertId();
 | |
| 
 | |
|   /**
 | |
|    * retourner la première ligne du résultat, ou $default si aucun élément
 | |
|    * n'est trouvé.
 | |
|    *
 | |
|    * si $rewind est true, appeler rewind() à la fin pour s'assurer que
 | |
|    * l'itérateur est fermé correctement.
 | |
|    *
 | |
|    * retourner un tableau [$value, $have_next, $it_nexts]
 | |
|    * - $have_next vaut true s'il y a encore des données qui suivent
 | |
|    * - si $rewind==false, $it_nexts est un itérateur qui permet d'accéder aux
 | |
|    *   données suivantes
 | |
|    */
 | |
|   function one($default=null, ?bool $rewind=null): array;
 | |
| 
 | |
|   function peek($default=null, bool $rewind=false): array;
 | |
| }
 |