Ich versuche, ein Stammverzeichnis in einer Dateisystemabstraktion zu erzwingen. Das Problem, auf das ich stoße, ist folgendes:Was ist der beste Weg, um einen relativen Pfad (wie Realpath) für nicht existierende Dateien aufzulösen?
Die API ermöglicht das Lesen und Schreiben von Dateien, nicht nur für lokale, sondern auch für entfernte Speicher. Es gibt also alle Arten von Normalisierung unter der Haube. Im Moment nicht unterstützt relative Pfade, so etwas wie dies nicht möglich ist:
$filesystem->write('path/to/some/../relative/file.txt', 'file contents');
ich sicher in der Lage sein wollen, den Weg zu lösen, so dass die Ausgabe wäre ist: path/to/relative/file.txt
. Wie in einem GitHub-Problem, das für diesen Bug/Enhancement erstellt wurde (https://github.com/FrenkyNet/Flysystem/issues/36#issuecomment-30319406), muss es mehr tun, als nur Segmente aufzuteilen und sie entsprechend zu entfernen.
Auch, da das Paket Remote-Dateisysteme und nicht vorhandene Dateien behandelt, ist realpath nicht in Frage.
Wie sollte man also mit diesen Pfaden umgehen?
Wie wäre es 'realpath (dirname ($ path))'? –
realpath benötigt einen Pfad, um auf dem lokalen Dateisystem zu existieren, was für Schreibvorgänge nicht der Fall ist und auf entfernten Dateisystemen überhaupt nicht verwendbar ist. –
Ich sehe nicht, wie Sie den absoluten Pfad eines nicht existierenden relativen Pfades bestimmen können. Du brauchst mindestens den Unterpfad, der die Punkte enthält –