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;
 | 
						|
}
 |