CakeFest 2024: The Official CakePHP Conference

Phar::addFile

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

Phar::addFileДобавляет в phar-архив файл из файловой системы

Описание

public Phar::addFile(string $filename, ?string $localName = null): void

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

С помощью этого метода в phar-архив может быть добавлен любой файл или содержимое, доступное по URL. Если указан необязательный второй параметр localName, то файл будет сохранён в архиве с таким именем, в ином случае в качестве пути для сохранения внутри архива будет использован параметр file. При добавлении содержимого, доступного по URL, параметр localname должен быть указан, иначе будет выброшено исключение. Этот метод аналогичен ZipArchive::addFile().

Список параметров

filename

Полный или относительный путь к файлу в файловой системе, который должен быть добавлен в phar-архив.

localName

Путь, по которому файл будет сохранён в архиве.

Возвращаемые значения

Нет возвращаемого значения, в случае возникновения ошибки выбрасывается исключение.

Список изменений

Версия Описание
8.0.0 localName теперь допускает значение null.

Примеры

Пример #1 Пример использования Phar::addFile()

<?php
try {
$a = new Phar('/путь/к/phar.phar');

$a->addFile('/полный/путь/к/файлу');
// показывает, как хранится этот файл
$b = $a['полный/путь/к/файлу']->getContent();

$a->addFile('/полный/путь/к/файлу', 'моя_папка/file.txt');
$c = $a['моя_папка/file.txt']->getContent();

// показывает использоваие URL
$a->addFile('http://www.example.com', 'example.html');
} catch (
Exception $e) {
// обработка ошибок
}
?>

Примечания

Замечание: Phar::addFile(), Phar::addFromString() и Phar::offsetSet() сохраняет новый phar-архив каждый раз при их вызове. Если производительность вызывает беспокойство, вместо этого следует использовать Phar::buildFromDirectory() или Phar::buildFromIterator().

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

add a note

User Contributed Notes

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