72 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace nur\b\io;
 | 
						|
 | 
						|
/**
 | 
						|
 * Interface IWriter: abstraction d'une destination dans laquelle on peut écrire
 | 
						|
 * (fichier, flux, etc.)
 | 
						|
 */
 | 
						|
interface IWriter {
 | 
						|
  ## gestion de l'indentation
 | 
						|
 | 
						|
  /** réinitialiser l'indentation */
 | 
						|
  function resetIndent(?int $indentLevel=0, ?string $indentString=null): void;
 | 
						|
 | 
						|
  /** augmenter le niveau d'indentation et retourner le niveau précédent */
 | 
						|
  function indent(): int;
 | 
						|
 | 
						|
  /** diminuer le niveau d'indentation */
 | 
						|
  function dedent(): void;
 | 
						|
 | 
						|
  ## écriture sur le flux
 | 
						|
 | 
						|
  /** si ce writer est basé sur une resource, la retourner, sinon null. */
 | 
						|
  function getResource();
 | 
						|
 | 
						|
  /** vérifier si ce writer écrit sur un terminal */
 | 
						|
  function isatty(): bool;
 | 
						|
 | 
						|
  /** si ce writer est basé sur une resource, ajouter un filtre. */
 | 
						|
  function appendFilter(string $filterName, ?int $readWrite=null, $params=null): void;
 | 
						|
 | 
						|
  /** si ce writer est basé sur une resource, ajouter un filtre. */
 | 
						|
  function prependFilter(string $filterName, ?int $readWrite=null, $params=null): void;
 | 
						|
 | 
						|
  /** si ce writer est basé sur une resource, spécifier l'encoding. */
 | 
						|
  function setEncodingFilter(string $to, string $from="utf-8"): void;
 | 
						|
 | 
						|
  /**
 | 
						|
   * obtenir la chaine qui serait affichée avec l'une des fonctions write() ou
 | 
						|
   * print()
 | 
						|
   */
 | 
						|
  function toString(string $sep, array $values, bool $updateIndent=true): string;
 | 
						|
 | 
						|
  /**
 | 
						|
   * écrire une suite de valeurs collées les unes aux autres dans la destination
 | 
						|
   */
 | 
						|
  function write(...$values): IWriter;
 | 
						|
 | 
						|
  /**
 | 
						|
   * afficher une suite de valeurs collées les unes aux autres suivie d'un saut
 | 
						|
   * à la ligne
 | 
						|
   */
 | 
						|
  function wnl(...$values): IWriter;
 | 
						|
 | 
						|
  /**
 | 
						|
   * écrire une suite de valeurs séparées par des espaces dans la destination.
 | 
						|
   * les valeurs null et false sont ignorées (comme inexistantes)
 | 
						|
   */
 | 
						|
  function print(...$values): IWriter;
 | 
						|
 | 
						|
  /**
 | 
						|
   * afficher une suite de valeurs séparées par des espaces suivie d'un saut à
 | 
						|
   * la ligne. les valeurs null et false sont ignorées (comme inexistantes)
 | 
						|
   */
 | 
						|
  function pnl(...$values): IWriter;
 | 
						|
 | 
						|
  /** afficher les lignes */
 | 
						|
  function writeLines(iterable $lines): IWriter;
 | 
						|
 | 
						|
  /** fermer le fichier si c'est nécessaire */
 | 
						|
  function close(bool $close=true): void;
 | 
						|
}
 |