OpenXE/classes/Components/Filesystem/docs/index.md
2021-05-21 08:49:41 +02:00

4.2 KiB

Filesystem-Komponente

Beispiele

FTP

<?php

/** @var \Xentral\Components\Filesystem\FilesystemFactory $factory */
$factory = $this->app->Container->get('FilesystemFactory');

$config = new \Xentral\Components\Filesystem\Adapter\FtpConfig('192.168.0.123', 'username', 'passwort', '/root-dir');
$ftp = $factory->createFtp($config);

if ($ftp->has('/some/file.txt')) {
    $contents = $ftp->read('/some/file.txt');
} else {
    $ftp->write('/some/file.txt', 'hello world!');
}

Lokales Dateisystem

<?php

/** @var \Xentral\Components\Filesystem\FilesystemFactory $factory */
$factory = $this->app->Container->get('FilesystemFactory');

$local = $factory->createLocal(dirname(__DIR__));

if ($local->has('/some/file.txt')) {
    $contents = $local->read('/some/file.txt');
} else {
    $local->write('/some/file.txt', 'hello world!');
}

Große Dateien kopieren

<?php

$ftp = $factory->createFtp($config);
$local = $factory->createLocal(dirname(__DIR__));

$ftp->writeStream('/ziel-pfad', $local->readStream('/quell-pfad'));

Datei-Uploads

<?php

$factory = $this->app->Container->get('FilesystemFactory');
$local = $factory->createLocal(dirname(__DIR__));

$stream = fopen($_FILES['upload']['tmp_name'], 'rb+');
$local->writeStream(
    'uploads/' . $_FILES['upload']['name'],
    $stream
);

if (is_resource($stream)) {
    fclose($stream);
}

FilesystemSyncCache

<?php

$ftp = $factory->createFtp($config);
$sync = $factory->createSync($ftp, 1);

$changes = $sync->listChanges('/sub', true); // Hinzugekommene und geänderte Dateien abrufen 
$deletes = $sync->listDeleted('/sub', true); // Gelöschte Dateien abrufen

API

FilesystemInterface


has($path)

Prüfen ob eine Datei oder ein Verzeichnis existiert.

Rückgabe: true oder false


listContents($directory = '', $recursive = false)

Verzeichnisinhalte abrufen.

Rückgabe: array mit PathInfo-Objekten


listDirs($directory = '', $recursive = false)

Verzeichnisinhalte abrufen; nur Verzeichnisse.

Rückgabe: array mit PathInfo-Objekten


listFiles($directory = '', $recursive = false)

Verzeichnisinhalte abrufen; nur Dateien.

Rückgabe: array mit PathInfo-Objekten


listPaths($directory = '', $recursive = false)

Verzeichnisinhalte abrufen; nur Pfadauflistung; keine Details.

Rückgabe: array mit Pfaden als string


getInfo($path)

Informationen über eine Datei oder ein Verzeichnis abrufen.

Rückgabe: PathInfo-Objekt


getType($path)

Prüfen ob Pfad eine Datei oder ein Verzeichnis ist.

Rückgabe: 'dir' oder 'file''


getSize($path)

Dateigröße abrufen.

Rückgabe: Dateigröße als int oder false bei einem Verzeichnis.


getTimestamp($path)

Datum der letzten Änderung abrufen.

Rückgabe: Timestamp als int oder false falls Information nicht verfügbar (z.B. bei Verzeichnissen über FTP).


getMimetype($path)

Mimetype abrufen.

Rückgabe: Mimetype als string oder 'directory' bei einem Verzeichnis.


read($path)

Datei-Inhalt abrufen.

Rückgabe: string


readStream($path)

Datei-Inhalt als Stream abrufen.

Rückgabe: resource


write($path, $contents, array $config = [])

writeStream($path, $resource, array $config = [])

Datei anlegen.

Besonderheit: Wenn Zieldatei bereits existiert, wird eine FileExistsException geworfen.

Rückgabe: true oder false


put($path, $contents, array $config = [])

putStream($path, $resource, array $config = [])

Datei anlegen oder überschreiben.

Besonderheit: Im Unterschied zu write() und writeStream() wird keine Exception geworfen wenn das Ziel bereits existiert.

Rückgabe: true oder false


createDir($dirname)

Verzeichnis anlegen; funktioniert auch rekursiv.

Rückgabe: true oder false


deleteDir($dirname)

Verzeichnis löschen; funktioniert auch wenn Verzeichnis nicht leer.

Rückgabe: true oder false


delete($path)

Einzelne Datei löschen.

Rückgabe: true oder false


rename($path, $newpath)

Datei umbenennen.

Rückgabe: true oder false


copy($path, $newpath)

Datei kopieren.

Rückgabe: true oder false