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

# PharFileInfo::setMetadata

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

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

### Описание

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

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

- PharFileInfo::hasMetadata() - Проверить, есть ли у файла метаданные
- PharFileInfo::getMetadata() - Получить метаданные, связанные с файлом
- PharFileInfo::delMetadata() - Удаляет метаданные отдельного файла в архиве
- Phar::setMetadata() - Установить метаданные phar-архива
- Phar::hasMetadata() - Проверить, содержит ли phar-архив глобальные метаданные
- Phar::getMetadata() - Извлечь метаданные phar-архива

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open