(PHP >= 5.3.0, PECL phar >= 1.0.0)
PharFileInfo::setMetadata — Fixe les métadonnées spécifiques à un fichier
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.
metadata
Toute variable PHP contenant des informations à stocker à part du fichier
Aucune valeur n'est retournée.
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" }