Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 4 Aktuelle »

Grundlegende Verwendung

Instanziieren Sie ein Ordner-Objekt:

$folder = new \brandbox\component\filesystem\folder('/path/to/folder');

...und suchen Sie nach allen .jpg-Dateien in diesem Ordner mit regex:

$files = $folder->find('.*\.jpg');

Jetzt können wir die Dateien durchlaufen und lesen oder schreiben, an den Inhalt Text anhängen oder einfach die Datei löschen:

foreach($files as $file):
    $file = new \brandbox\component\filesystem\file($folder->pwd().'/'.$file);
    $contents = $file->read();
    // $file->write('I am overwriting the contents of this file');
    // $file->append('I am adding to the bottom of this file.');
    // $file->delete(); // I am deleting this file
    $file->close(); // Be sure to close the file when you're done
endforeach;

Ordner-API

class \brandbox\component\filesystem\folder(
  string $path = false, 
  boolean $create = false, 
  string|boolean $mode = false
)
// Create a new folder with 0755 permissions
$dir = new \brandbox\component\filesystem\folder('/path/to/folder', true, 0755);
property folder::$path

Pfad des aktuellen Ordners. ::pwd() gibt dieselbe Information zurück.

property folder::$sort
Ob die Listenergebnisse nach Namen sortiert werden sollen oder nicht.

property folder::$mode

Modus, der beim Erstellen von Ordnern verwendet werden soll. Der Standardwert ist 0755. Nichts auf Windows-Computern.

static folder::addPathElement(string $path, string $element)

Gibt $path mit $element hinzu, mit korrektem Schrägstrich dazwischen:

$path = \brandbox\component\filesystem\folder::addPathElement('/a/path/for', 'testing'); 
// $path equals /a/path/for/testing

$element kann auch ein Array sein:

$path = \brandbox\component\filesystem\folder::addPathElement(
  '/a/path/for', 
  ['testing', 'another']
); 
// $path equals /a/path/for/testing/another
folder::cd($path)

Wechseln Sie das Verzeichnis zu $path. Gibt bei einem Fehler den Wert false zurück:

$folder = new \brandbox\component\filesystem\folder('/foo');
echo $folder->path; 
// Prints /foo 
$folder->cd('/bar'); 
echo $folder->path; 
// Prints /bar 
$false = $folder->cd('/non-existent-folder');
folder::chmod(string $path, integer $mode = false, boolean $recursive = true, array $exceptions = [])

Ändern Sie den Modus für eine Verzeichnisstruktur rekursiv. Dies beinhaltet auch das Ändern des Modus für Dateien:

$dir = new \brandbox\component\filesystem\folder(); 
$dir->chmod('/path/to/folder', 0755, true, ['skip_me.php']);
folder::copy(array|string $options = [])

Kopieren Sie ein Verzeichnis rekursiv. Der einzige Parameter $options kann entweder ein Pfad zum Kopieren in oder ein Array von Optionen sein:

$folder1 = new \brandbox\component\filesystem\folder('/path/to/folder1');
$folder1->copy('/path/to/folder2');
// Will put folder1 and all its contents into folder2

$folder = new \brandbox\component\filesystem\folder('/path/to/folder');
$folder->copy([
    'to' => '/path/to/new/folder',
    'from' => '/path/to/copy/from', // Will cause a cd() to occur
    'mode' => 0755,
    'skip' => ['skip-me.php', '.git'],
    'scheme' => Folder::SKIP  // Skip directories/files that already exist.
]);

Es gibt 3 unterstützte Schemata:

  • Folder::SKIP Kopieren / Verschieben von Dateien und Verzeichnissen, die im Zielverzeichnis vorhanden sind, überspringen.
  • Folder::MERGE Führen Sie die Quell- / Zielverzeichnisse zusammen. Dateien im Quellverzeichnis ersetzen Dateien im Zielverzeichnis. Verzeichnisinhalte werden zusammengeführt.
  • Folder::OVERWRITE Überschreibt vorhandene Dateien und Verzeichnisse im Zielverzeichnis mit denen im Quellverzeichnis. Wenn sowohl das Ziel als auch das Ziel dasselbe Unterverzeichnis enthalten, wird der Inhalt des Zielverzeichnisses entfernt und durch das der Quelle ersetzt.

static folder::correctSlashFor(string $path)

Gibt einen korrektes Set von Slashes für gegebenen $path zurück.

folder::create(string $pathname, integer $mode = false)

Erstellen Sie eine Verzeichnisstruktur rekursiv. Kann verwendet werden, um tiefe Pfadstrukturen wie /foo/bar/baz/shoe/horn zu erstellen:

$folder = new \brandbox\component\filesystem\folder();
if($folder->create('foo/bar/baz/shoe/horn')):
  // Successfully created the nested folders
endif;
folder::delete(string $path = null)
Verzeichnisse rekursiv entfernen, wenn das System Folgendes zulässt:
$folder = new \brandbox\component\filesystem\folder('foo');
if ($folder->delete()):
  // Successfully deleted foo and its nested folders 
endif;
folder::dirsize()

Gibt die Größe dieses Ordners und seines Inhalts in Bytes zurück.

folder::errors()

Erhalten Sie den Fehler von der letzten Methode.

folder::find(string $regexpPattern = '.*', boolean $sort = false)

Gibt ein Array aller übereinstimmenden Dateien im aktuellen Verzeichnis zurück:

// Find all .log in your appRoot/temp/log folder and sort the results
$dir = new \brandbox\component\filesystem\folder(APP_ROOT.'temp/log');
$files = $dir->find('.*\.log', true);
/*
Array
(
    [0] => log-2018-05-02.log
    [1] => log-2018-05-03.log
    [2] => log-2018-05-04.log
    [3] => log-2018-05-05.log
)
*/
folder::findRecursive(string $pattern = '.*', boolean $sort = false)

Gibt ein Array aller übereinstimmenden Dateien in und unter dem aktuellen Verzeichnis zurück:

// Recursively find files beginning with test or index
$dir = new \brandbox\component\filesystem\folder(APP_ROOT.'temp/log');
$files = $dir->findRecursive('(log|mam).*');
/*
Array
(
    [0] => /var/www/temp/log/log-2018-05-02.log
    [1] => /var/www/temp/log/log-2018-05-03.log
    [2] => /var/www/temp/log/log-2018-05-04.log
    [3] => /var/www/temp/log/mam-2018-05-05.log
)
*/
folder:
inBrandboxPath
(string $path = '')

Gibt true zurück, wenn sich die Datei in einem bestimmten brandbox-Pfad befindet.

folder::inPath(string $path = '', boolean $reverse = false)

Gibt true zurück, wenn sich die Datei im angegebenen Pfad befindet:

$dir = new \brandbox\component\filesystem\folder('/var/www/example/src/');
$result = $dir->inPath('/var/www/example/webroot/');
// $result = false, /var/www/example/src/ is not in /var/www/example/webroot/

$result = $dir->inPath('/var/www/example/root/img/', true);
// $result = true, /var/www/example/root/img/ is in /var/www/example/root/
static folder::isAbsolute(string $path)

Gibt true zurück, wenn der angegebene $path ein absoluter Pfad ist.

static folder::isSlashTerm(string $path)

Gibt true zurück, wenn $path in einem Schrägstrich endet (d. h. mit einem Schrägstrich endet):

$result = \brandbox\component\filesystem\folder::isSlashTerm('/my/test/path');
// $result = false
$result = \brandbox\component\filesystem\folder::isSlashTerm('/my/test/path/');
// $result = true
static folder::isWindowsPath(string $path)

Gibt true zurück, wenn der angegebene $path ein Windows-Pfad ist.

folder::messages()

Nachrichten der letzten Methode holen.

folder::move(array $options)

Rekursives Verzeichnis verschieben.

static folder::normalizePath(string $path)

Gibt ein korrektes Set von Slashes für $path zurück.

folder::pwd()

Liefert den aktuellen Pfad zurück.

folder::read(boolean $sort = true, array|boolean $exceptions = false, boolean $fullPath = false)

Gibt ein Array des Inhalts des aktuellen Verzeichnisses zurück. Das zurückgegebene Array enthält zwei Unter-Arrays: Eines der Verzeichnisse und eines der Dateien:

$dir = new \brandbox\component\filesystem\folder(APP_ROOT.'plugin/local/...');
$files = $dir->read(true, ['files', 'index.php']);
/*
Array
(
    [0] => Array // Folders
        (
            [0] => css
            [1] => img
            [2] => js
        )
    [1] => Array // Files
        (
            [0] => .htaccess
            [1] => favicon.ico
            [2] => test.php
        )
)
*/
folder::realpath(string $path)

Holen Sie sich den richtigen Pfad (unter Berücksichtigung von "..").

static folder::slashTerm(string $path)

Gibt $path mit einem abschließenden Slash zurück.

folder::tree(null|string $path = null, array|boolean $exceptions = true, null|string $type = null)

Gibt ein Array verschachtelter Verzeichnisse und Dateien in jedem Verzeichnis zurück.

File API

class file(string $path, boolean $create = false, integer $mode = 755)

// Create a new file with 0644 permissions
$file = new \brandbox\component\filesystem\file('/path/to/file.php', true, 0644);

property file::$Folder

Das Ordnerobjekt der Datei.

property file::$name

Der Name der Datei mit der Erweiterung. Unterscheidet sich von file::name(), die den Namen ohne die Erweiterung zurückgibt.

property file::$info

Ein Array von Dateiinformationen. Verwenden Sie stattdessen file::info().

property file::$handle

Enthält die Dateihandler-Ressource, wenn die Datei geöffnet wird.

property file::$lock

Sperren Sie die Datei für das Lesen und Schreiben.

property file::$path

Der absolute Pfad der aktuellen Datei.

file::append(string $data, boolean $force = false)

Hängen Sie die angegebene Datenzeichenfolge an die aktuelle Datei an.
file::close()

Schließt die aktuelle Datei, wenn sie geöffnet ist.

file::copy(string $dest, boolean $overwrite = true)

Kopieren Sie die Datei nach $dest.

file::create()

Erstellt die Datei.

file::delete()

Löscht die Datei.

file::executable()

Gibt true zurück, wenn die Datei ausführbar ist.

file::exists()

Gibt true zurück, wenn die Datei existiert.

file::ext()

Gibt die Dateierweiterung zurück.

file::Folder()

Gibt den aktuellen Ordner zurück.

file::group()

Gibt die Dateigruppe zurück oder im Fehlerfall false.

file::info()

Gibt die Dateiinformationen zurück.

file::lastAccess()

Gibt die letzte Zugriffszeit zurück.

file::lastChange()

Gibt die Zeit der letzten Änderung zurück oder false im Fehlerfall .

file::md5(integer|boolean $maxsize = 5)

Holen Sie die MD5-Prüfsumme der Datei mit vorheriger Überprüfung der Dateigröße. Gibt im Fehlerfall false zurück.

file::name()

Gibt den Dateinamen ohne Erweiterung zurück.

file::offset(integer|boolean $offset = false, integer $seek = 0)

Legt den Offset für die aktuell geöffnete Datei fest oder ruft ihn ab.

file::open(string $mode = 'r', boolean $force = false)

Öffnet die aktuelle Datei mit dem angegebenen $mode.

file::owner()

Gibt den Besitzer der Datei zurück.

file::perms()

Gibt die "chmod" (Berechtigungen) der Datei zurück.

static file::prepare(string $data, boolean $forceWindows = false)

Bereitet eine ASCII-Zeichenfolge zum Schreiben vor. Konvertiert Zeilenenden in den richtigen Terminator für die aktuelle Plattform. Für Windows wird "\r\n" verwendet, "\n" für alle anderen Plattformen.

file::pwd()

Gibt den vollständigen Pfad der Datei zurück.

file::read(string $bytes = false, string $mode = 'rb', boolean $force = false)

Gibt den Inhalt der aktuellen Datei als Zeichenfolge zurück oder gibt bei einem Fehler den Wert false zurück.

file::readable()

Gibt true zurück, wenn die Datei lesbar ist.

file::safe(string $name = null, string $ext = null)

Macht Dateinamen zum Speichern sicher.

file::size()

Gibt die Dateigröße in Bytes zurück.

file::writable()

Gibt true zurück, wenn die Datei beschreibbar ist.

file::write(string $data, string $mode = 'w', boolean$force = false)

Schreibe gegebene Daten in die aktuelle Datei.

file::mime()

Ruft den MIME-Typ der Datei ab, gibt bei einem Fehler den Wert false zurück.

file::replaceText($search, $replace)

Ersetzt Text in einer Datei. Gibt bei einem Fehler den Wert false und bei Erfolg den Wert true zurück.





  • Keine Stichwörter