(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)
PharFileInfo::setMetadata — Установка метаданных для конкретного файла
PharFileInfo::setMetadata() следует использовать для сохранения метаданных конкретного файла, которые нельзя хранить внутри самого файла, поскольку, если данных много, либо в принципе много файлов с метаданными - это значительно замедляет загрузку phar-архива. Важно помнить, что phar-архивы из коробки поддерживают права на файлы и их можно задать с помощью метода PharFileInfo::chmod(). Так как этот функционал изменяет phar-архив, необходимо, чтобы опция phar.readonly была отключена, иначе внести изменения в архив Phar не получится. На архивы PharData ограничение на запись не распространяется.
Метаданные файлов можно использовать, например, для указания, какие права надо назначить файлу при экспорте его на диск, или для указания MIME-типа, который он возвращает. В общем - любая полезная информация, которой не место внутри самого файла.
metadata
Любая переменная PHP, содержащая необходимую информацию
Эта функция не возвращает значения после выполнения.
Пример #1 Пример использования PharFileInfo::setMetadata()
<?php
// удалим, на всякий случай
@unlink('brandnewphar.phar');
try {
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p['file.txt'] = 'hello';
$p['file.txt']->setMetadata(array('user' => 'bill', 'mime-type' => 'text/plain'));
var_dump($p['file.txt']->getMetaData());
} catch (Exception $e) {
echo 'Не удалось создать/изменить phar: ', $e;
}
?>
Результат выполнения данного примера:
array(2) { ["user"]=> string(4) "bill" ["mime-type"]=> string(10) "text/plain" }