nulib/php/src_file/_IFile.php

57 lines
1.6 KiB
PHP

<?php
namespace nulib\file;
use Iterator;
use nulib\os\IOException;
use nulib\php\ICloseable;
/**
* Interface _IFile: méthodes communes entre {@link IReader} et {@link IWriter}
*/
interface _IFile extends Iterator, ICloseable {
/**
* @return resource|null retourner la resource associée à ce fichier si cela
* a du sens
*/
function getResource();
/** si ce fichier est basé sur une resource, ajouter un filtre. */
function appendFilter(string $filterName, ?int $readWrite=null, $params=null): void;
/** si ce fichier est basé sur une resource, ajouter un filtre. */
function prependFilter(string $filterName, ?int $readWrite=null, $params=null): void;
/** si ce fichier est basé sur une resource, spécifier l'encoding. */
function setEncodingFilter(string $from, string $to): void;
/** vérifier si la resource est associée à un terminal */
function isatty(): bool;
/** obtenir des informations sur le fichier */
function fstat(): array;
/** retourner la taille du fichier */
function getSize(): int;
/**
* retourner la position actuelle de lecture/écriture
*
* @throws IOException
*/
function ftell(): int;
/**
* modifier la position actuelle de lecture/écriture
*
* @return int la position après avoir déplacé le pointeur
* @throws IOException
*/
function fseek(int $offset, int $whence=SEEK_SET): int;
/** comme {@link fseek()} mais retourne self */
function seek(int $offset, int $whence=SEEK_SET): self;
/** fermer le fichier si c'est nécessaire */
function close(bool $close=true): void;
}