Files
michaelschiemer/src/Framework/Filesystem/Storage.php

79 lines
1.7 KiB
PHP

<?php
namespace App\Framework\Filesystem;
interface Storage
{
/**
* Liest den Inhalt einer Datei
*/
public function get(string $path): string;
/**
* Speichert Inhalt in einer Datei
*/
public function put(string $path, string $content): void;
/**
* Prüft, ob eine Datei existiert
*/
public function exists(string $path): bool;
/**
* Löscht eine Datei
*/
public function delete(string $path): void;
/**
* Kopiert eine Datei
*/
public function copy(string $source, string $destination): void;
/**
* Ermittelt die Größe einer Datei in Bytes
*/
public function size(string $path): int;
/**
* Ermittelt das letzte Änderungsdatum einer Datei
*/
public function lastModified(string $path): int;
/**
* Ermittelt MIME-Typ einer Datei
*/
public function getMimeType(string $path): string;
/**
* Prüft, ob eine Datei lesbar ist
*/
public function isReadable(string $path): bool;
/**
* Prüft, ob eine Datei schreibbar ist
*/
public function isWritable(string $path): bool;
/**
* Liest ein Verzeichnis aus
*
* @return array<string> Liste von Dateipfaden
*/
public function listDirectory(string $directory): array;
/**
* Erstellt ein Verzeichnis
*/
public function createDirectory(string $path, int $permissions = 0755, bool $recursive = true): void;
/**
* Erstellt ein File-Objekt mit Lazy-Loading
*/
public function file(string $path): File;
/**
* Erstellt ein Directory-Objekt mit Lazy-Loading
*/
public function directory(string $path): Directory;
}