(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)
PharFileInfo::setMetadata — Establecer la metainformación específica de un fichero almacenda con un fichero
PharFileInfo::setMetadata() solamente debería usarse para almacenar información personalizada en un fichero que con pueda ser representado con la información almacenada existente con un fichero. La metainformación puede ralentizar significativamente la velocidad de carga de un archivo phar si la información es grande, o si existen muchos ficheros que contienen metainformación. Es importante observar que esos permisos de fichero están soportados nativamente dentro de un phar; es posible establecerlo con el método PharFileInfo::chmod(). Al igual que con toda la funcionalidad que modifica el contenido de un Phar, la variable INI phar.readonly debe estar desactivada para poder realizar esto si el fichero está dentro de un archivo Phar. Los ficheros dentro de archivos PharData no tienen esta restricción.
Algunos posibles usos para la metainformación incluten pasar un usuario/grupo que debería establecerse al extraer el fichero desde el phar al disco. Otros usos podrían incluir explicitamente especificar un tipo MIME a devolver. Sin embargo, cualquier información útil que describa un fichero, excepto la que no debería estar contenida dentro del mismo, puede ser almacenada.
metadata
Cualquier variable de PHP que contenga información a almacenar junto a un fichero
No devuelve ningún valor.
Ejemplo #1 Un ejemplo de PharFileInfo::setMetadata()
<?php
// asegurarse de que no existe
@unlink('nuevo_phar.phar');
try {
$p = new Phar(dirname(__FILE__) . '/nuevo_phar.phar', 0, 'nuevo_phar.phar');
$p['fichero.txt'] = 'hola';
$p['fichero.txt']->setMetadata(array('usuario' => 'bill', 'tipo-mime' => 'text/plain'));
var_dump($p['fichero.txt']->getMetadata());
} catch (Exception $e) {
echo 'No se pudo crear y/o modificar el phar:', $e;
}
?>
El resultado del ejemplo sería:
array(2) { ["usuario"]=> string(4) "bill" ["tipo-mime"]=> string(10) "text/plain" }