Phar::buildFromDirectory

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

Phar::buildFromDirectoryСоздает phar-архив из файлов, расположенных внутри директории

Описание

public Phar::buildFromDirectory ( string $base_dir [, string $regex ] ) : array

Замечание:

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

Заполняет phar-архив содержимым директории. Необязательный второй параметр является регулярным выражением (PCRE) и используется для исключения файлов. Любой файл, чье имя соответствует регулярному выражению, будет включен, все остальные будут исключены. Для более детализированного контроля используйте Phar::buildFromIterator().

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

base_dir

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

regex

Необязательное регулярное выражение (PCRE), которое используется для фильтрации списка файлов. В архив будут включены только те файлы, пути к которым соответствуют регулярному выражению.

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

Phar::buildFromDirectory() возвращает ассоциативный массив, в котором отражено соответствие пути к файлу внутри архива к пути к файлу в файловой системе.

Ошибки

Этот метод выбрасывает исключение BadMethodCallException в том случае, если не удалось создать экземпляр итератора внутренних директорий. Исключение PharException выбрасывается в случае ошибок сохранения phar-архива.

Примеры

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

<?php
// создать с псевдонимом "project.phar"
$phar = new Phar('project.phar'0'project.phar');
// добавить все файлы директории project в файл project.phar
$phar->buildFromDirectory(dirname(__FILE__) . '/project');
$phar->setStub($phar->createDefaultStub('cli/index.php''www/index.php'));

$phar2 = new Phar('project2.phar'0'project2.phar');
// добавить все файлы директории project в файл project2.phar, включая только php-файлы
$phar2->buildFromDirectory(dirname(__FILE__) . '/project''/\.php$/');
$phar2->setStub($phar->createDefaultStub('cli/index.php''www/index.php'));
?>

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