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