(PHP 5 >= 5.3.0, PHP 7, PHP 8, 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.
metadataToute 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"
}