Start · Sprachen · PHP · Referenz · svn_fs_node_prop

svn_fs_node_prop

Funktion

Gibt den Wert einer bestimmten Eigenschaft (Property) eines Knotens im Subversion-Dateisystem zurück.

Kategorie: misc

Signatur

svn_fs_node_prop(resource $fsroot, string $path, string $propname): string

Beschreibung

svn_fs_node_prop() liest den Wert einer benannten Eigenschaft eines Knotens (Datei oder Verzeichnis) aus dem Subversion-Dateisystem aus. Dabei wird über ein Filesystem-Root-Handle ($fsroot) auf eine bestimmte Revision oder eine Transaktion zugegriffen.

Subversion-Knoten können beliebige benutzerdefinierte Eigenschaften (Properties) tragen, zum Beispiel svn:mime-type, svn:keywords, svn:eol-style oder eigene Metadaten. Diese Funktion erlaubt es, den Wert einer solchen Eigenschaft direkt aus der internen Dateisystem-Repräsentation abzurufen, ohne den Arbeitsbereich zu benutzen.

Die Funktion setzt die PHP-Erweiterung svn (PECL) voraus und arbeitet auf Low-Level-Ebene direkt mit dem Subversion-Repository-Dateisystem. Sie wird typischerweise in Kombination mit svn_repos_fs() und svn_fs_revision_root() oder svn_fs_begin_txn2() verwendet.

Ist die angegebene Eigenschaft am Knoten nicht gesetzt, wird ein leerer String zurückgegeben.

Parameter

Name Typ Default Beschreibung
$fsroot Pflicht resource Ein Dateisystem-Root-Handle, das über svn_fs_revision_root() oder svn_fs_txn_root() erzeugt wurde und den Zugangspunkt zu einem bestimmten Revisionsstand im Repository darstellt.
$path Pflicht string Der Pfad des Knotens (Datei oder Verzeichnis) im Repository, dessen Eigenschaft abgefragt werden soll. Zum Beispiel /trunk/src/main.php.
$propname Pflicht string Der Name der Eigenschaft, die ausgelesen werden soll. Beispiele: svn:mime-type, svn:keywords oder ein benutzerdefinierter Name wie custom:author.

Rückgabewert

Typ
string
Beschreibung
Gibt den Wert der angegebenen Eigenschaft als String zurück. Ist die Eigenschaft am Knoten nicht gesetzt, wird ein leerer String zurückgegeben. Bei einem Fehler (ungültiger Pfad, ungültiges Handle) kann false zurückgegeben werden.

Beispiele

MIME-Typ einer Datei aus einer bestimmten Revision lesen

<?php
// Repository öffnen
$repos = svn_repos_open('/var/svn/myrepo');

// Dateisystem des Repositories holen
$fs = svn_repos_fs($repos);

// Root für Revision 42 holen
$fsroot = svn_fs_revision_root($fs, 42);

// Eigenschaft svn:mime-type der Datei auslesen
$mimeType = svn_fs_node_prop($fsroot, '/trunk/public/index.html', 'svn:mime-type');

if ($mimeType !== '' && $mimeType !== false) {
    echo "MIME-Typ: " . $mimeType . PHP_EOL;
} else {
    echo "Eigenschaft nicht gesetzt." . PHP_EOL;
}
?>
MIME-Typ: text/html

Benutzerdefinierte Eigenschaft eines Verzeichnisses auslesen

<?php
// Repository öffnen
$repos = svn_repos_open('/var/svn/myrepo');
$fs    = svn_repos_fs($repos);

// Neueste Revision ermitteln
$latestRev = svn_fs_youngest_rev($fs);
$fsroot    = svn_fs_revision_root($fs, $latestRev);

// Benutzerdefinierte Eigenschaft lesen
$owner = svn_fs_node_prop($fsroot, '/trunk', 'custom:owner');

echo $owner !== '' && $owner !== false
    ? "Eigentümer: " . htmlspecialchars($owner)
    : "Eigenschaft 'custom:owner' ist nicht gesetzt.";
?>
Eigentümer: max.mustermann

// Wichtig · Fallstricke

PECL-Erweiterung erforderlich: Diese Funktion ist Teil der svn-PECL-Erweiterung, die separat installiert werden muss und nicht im Standard-PHP-Paket enthalten ist. Die Verfügbarkeit im Produktivbetrieb ist daher nicht garantiert.

Fehlerbehandlung: Bei ungültigem $fsroot-Handle oder einem nicht existierenden Pfad kann die Funktion Warnungen ausgeben oder false zurückliefern. Daher sollte der Rückgabewert stets auf false und auf leeren String geprüft werden.

Kodierung: Eigenschaftswerte werden als rohe Byte-Strings zurückgegeben. Bei der Ausgabe in HTML sollte htmlspecialchars() verwendet werden, um XSS zu vermeiden.