PHP 8.4.0 RC4 available for testing

PharFileInfo::setMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::setMetadataFixe les métadonnées spécifiques à un fichier

Description

public PharFileInfo::setMetadata(mixed $metadata): void

PharFileInfo::setMetadata() ne doit être utilisée que pour stocker des données personnalisées dans un fichier qui ne peuvent pas l'être avec des informations normalement stockées avec le fichier. Les métadonnées peuvent dégrader les performances de chargement d'une archive phar si les données sont trop lourdes ou s'il y a beaucoup de fichiers avec des métadonnées. Il est important de noter que les permissions de fichiers sont supportées nativement dans un phar; il est possible de les fixer avec la méthode PharFileInfo::chmod(). Comme avec toutes les fonctionnalités qui modifient le contenu du phar, la variable INI phar.readonly doit être à off pour réussir si le fichier est au sein d'une archive Phar. Les fichiers au sein d'archives PharData n'ont pas cette restriction.

Une utilisation possible des métadonnées est le passage d'un utilisateur/groupe qui devrait être utilisé quand un fichier est extrait du phar vers le disque. On peut aussi spécifier un type MIME à retourner. De manière générale, on peut stocker toute donnée utile qui décrit un fichier mais qui ne peut pas y être inscrite directement.

Liste de paramètres

metadata

Toute variable PHP contenant des informations à stocker à part du fichier

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Un exemple avec PharFileInfo::setMetadata()

<?php
// on s'assure que le phar n'existe pas déjà
@unlink('nouveauphar.phar');
try {
$p = new Phar(dirname(__FILE__) . '/nouveauphar.phar', 0, 'nouveauphar.phar');
$p['fichier.txt'] = 'salut';
$p['fichier.txt']->setMetadata(array('utilisateur' => 'Yannick', 'mime-type' => 'text/plain'));
var_dump($p['fichier.txt']->getMetadata());
} catch (
Exception $e) {
echo
'Ne peut pas créer/modifier le phar : ', $e;
}
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["utilisateur"]=>
  string(7) "Yannick"
  ["mime-type"]=>
  string(10) "text/plain"
}

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top