53 lines
1.4 KiB
PHP
53 lines
1.4 KiB
PHP
<?php
|
|
namespace nulib\file;
|
|
|
|
use nulib\os\EOFException;
|
|
use nulib\os\IOException;
|
|
|
|
/**
|
|
* Interface IReader: un objet depuis lequel on peut lire des données
|
|
*/
|
|
interface IReader extends _IFile {
|
|
/** @throws IOException */
|
|
function fread(int $length): string;
|
|
|
|
/** @throws IOException */
|
|
function fgets(): string;
|
|
|
|
/** @throws IOException */
|
|
function fpassthru(): int;
|
|
|
|
/**
|
|
* 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 autre erreur se produit
|
|
*/
|
|
function readLine(): ?string;
|
|
|
|
/**
|
|
* essayer de verrouiller le fichier en lecture. retourner true si l'opération
|
|
* réussit. dans ce cas, il faut appeler {@link getReader()} avec l'argument
|
|
* true
|
|
*/
|
|
function canRead(): bool;
|
|
|
|
/**
|
|
* verrouiller en mode partagé puis retourner un objet permettant de lire le
|
|
* fichier.
|
|
*/
|
|
function getReader(bool $lockedByCanRead=false): IReader;
|
|
|
|
/**
|
|
* lire tout le contenu du fichier en une seule fois, puis, si $close==true,
|
|
* le fermer
|
|
*
|
|
* @throws IOException si une erreur se produit
|
|
*/
|
|
function getContents(bool $close=true, bool $lockedByCanRead=false): string;
|
|
|
|
/** désérialiser le contenu du fichier, puis, si $close===true, le fermer */
|
|
function unserialize(?array $options=null, bool $close=true, bool $lockedByCanRead=false);
|
|
}
|