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