(PHP >= 5.3.0, 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 'Could not create/modify phar: ', $e;
}
?>
Результат выполнения данного примера:
array(2) { ["user"]=> string(4) "bill" ["mime-type"]=> string(10) "text/plain" }