IO
IFileIO
Az IFileIo
interfész a fájlból írás és betöltés műveletét definiálja.
interface IFileIO {
function save($data);
function load();
}
FileIO
A FileIO
absztrakt ősosztály, mely egy fájl létezésének vizsgálatát végzi el konstruktorában.
abstract class FileIO implements IFileIO {
protected string $filepath;
public function __construct($filename) {
if (!is_readable($filename) || !is_writable($filename)) {
throw new Exception("Data source $filename is invalid.");
}
$this->filepath = realpath($filename);
}
}
Konstruktor
Egyetlen kötelező paramétere egy fájlnév. A konstruktor hibát dob, ha a fájl nem feleltethető megy egy olyan fájlnak ami létezik és tudjuk írni és olvasni.
JsonIO
JSON formátumú adatok olvasását írását teszi lehetővé.
class JsonIO extends FileIO {
public function load(bool $assoc = true): mixed {
$file_content = file_get_contents($this->filepath);
return json_decode($file_content, $assoc) ?? [];
}
public function save(mixed $data): void {
$json_content = json_encode($data, JSON_PRETTY_PRINT);
file_put_contents($this->filepath, $json_content);
}
}
load
Betölti a megadott JSON fájlban szereplő adatokat.
Paraméterek
bool $assoc = True
: asszociatív tömbbe történjen-e az adatok beolvasása
Visszatérés
mixed
: általában egy tömb
save
JSON formátumban kiírja a megadott adatokat.
Paraméterek
mixed $data
: a sorosítandó adat
SerializeIO
class SerializeIO extends FileIO {
public function load(): array {
$file_content = file_get_contents($this->filepath);
return unserialize($file_content) ?? [];
}
public function save(mixed $data): void {
$serialized_content = serialize($data);
file_put_contents($this->filepath, $serialized_content);
}
}
load
Betölti a megadott PHP sorosítást tartalmazó fájlban szereplő adatokat.
Visszatérés
mixed
: általában egy tömb
save
PHP sorosítás formátumban kiírja a megadott adatokat.
Paraméterek
mixed $data
: a sorosítandó adat