CakeFest 2024: The Official CakePHP Conference

PharFileInfo::setMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::setMetadataУстановка метаданных для конкретного файла

Описание

public PharFileInfo::setMetadata(mixed $metadata): void

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"
}

Смотрите также

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top