nur-sery/nur_src/b/io/IReader.php

48 lines
1.4 KiB
PHP

<?php
namespace nur\b\io;
use nur\b\ICloseable;
/**
* Class IReader: abstraction d'une source à partir de laquelle on peut lire
* (fichier, flux, etc.)
*/
interface IReader extends ICloseable {
/** si ce reader est basé sur une resource, la retourner, sinon null. */
function getResource();
/** si ce reader est basé sur une resource, ajouter un filtre. */
function appendFilter(string $filterName, ?int $readWrite=null, $params=null): void;
/** si ce reader est basé sur une resource, ajouter un filtre. */
function prependFilter(string $filterName, ?int $readWrite=null, $params=null): void;
/** si ce reader est basé sur une resource, spécifier l'encoding. */
function setEncodingFilter(string $from, string $to="utf-8"): void;
/**
* lire la prochaine ligne. la ligne est retournée *sans* le caractère de fin
* de ligne [\r]\n
*
* @throws EOFException si plus aucune ligne n'est disponible
* @throws IOException si une erreur se produit
*/
function readLine(): string;
/** lire toutes les lignes du fichier */
function readLines(): array;
/**
* lire tout le contenu en une seule fois, puis, si $close==true, fermer le
* fichier
*
* @throws IOException si une erreur se produit
*/
function getContents(bool $close=true): string;
function unserialize(?array $options=null, bool $close=true);
/** fermer le fichier si c'est nécessaire */
function close(bool $close=true): void;
}