Phar::buildFromDirectory
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::buildFromDirectory — Создаёт phar-архив из файлов, расположенных внутри директории
Описание
public Phar::buildFromDirectory(string $directory
, string $pattern
= ""): array
Замечание:
Для корректной работы с объектами Phar
этому методу необходима установка значения php.ini phar.readonly
в 0
.
В противном случае, будет выброшено исключение PharException.
Заполняет phar-архив содержимым директории. Необязательный второй параметр
является регулярным выражением (PCRE) и используется для исключения файлов.
Любой файл, чьё имя соответствует регулярному выражению, будет включён, все остальные
будут исключены. Для более детализированного контроля используйте Phar::buildFromIterator().
Список параметров
-
directory
-
Полный или абсолютный путь к директории, все файлы которой
должны быть добавлены в архив.
-
pattern
-
Необязательное регулярное выражение (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'));
?>