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