Распаковывает все файлы в текущем Phar-архиве

# Phar::decompressFiles

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

Phar::decompressFiles — Распаковывает все файлы в текущем Phar-архиве

### Описание

public function Phar::decompressFiles(): true

> Замечание: Для корректной работы метода с объектами Phar потребуется установить для директивы `phar.readonly` в файле php.ini значение `0`, иначе метод выбросит исключение PharException.

При работе с phar-архивами на основе формата tar метод выбрасывает исключение BadMethodCallException, поскольку сжатие отдельных файлов внутри tar-архива не поддерживается форматом файла. Для сжатия целого phar-архива на основе формата tar пользуются методом Phar::compress().

При работе с phar-архивами на основе форматов zip или phar метод распаковывает все файлы в Phar-архиве. Для распаковки файлов этим методом потребуется включить модуль zlib или bzip2, если файлы внутри архива сжали методом bzip2 или zlib. Как и в случае с другим функционалом, который модифицирует содержание phar-архива, для успешной работы метода потребуется отключить INI-переменную phar.readonly.

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

Сигнатура функции не содержит параметров.

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

Функция возвращает логическое значение `true`.

### Ошибки

Метод выбрасывает исключение BadMethodCallException, если INI-переменная phar.readonly включена, модуль zlib недоступен или если файлы внутри архива сжали методом bzip2, а модуль bzip2 отключён.

### Примеры

Пример #1 Пример распаковки phar-архива методом Phar::decompressFiles()

    <?php

    $p = new Phar('/путь/к/my.phar', 0, 'my.phar');

    $p['myfile.txt'] = 'привет';
    $p['myfile2.txt'] = 'привет';

    $p->compressFiles(Phar::GZ);

    foreach ($p as $file) {
        var_dump($file->getFileName());
        var_dump($file->isCompressed());
        var_dump($file->isCompressed(Phar::BZ2));
        var_dump($file->isCompressed(Phar::GZ));
    }

    $p->decompressFiles();

    foreach ($p as $file) {
        var_dump($file->getFileName());
        var_dump($file->isCompressed());
        var_dump($file->isCompressed(Phar::BZ2));
        var_dump($file->isCompressed(Phar::GZ));
    }

    ?>

Результат выполнения приведённого примера:

    string(10) "myfile.txt"
    int(4096)
    bool(false)
    bool(true)
    string(11) "myfile2.txt"
    int(4096)
    bool(false)
    bool(true)
    string(10) "myfile.txt"
    bool(false)
    bool(false)
    bool(false)
    string(11) "myfile2.txt"
    bool(false)
    bool(false)
    bool(false)

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

- PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учётом сжатия
- PharFileInfo::isCompressed() - Проверить, сжат ли файл
- PharFileInfo::compress() - Сжимает текущий файл методом zlib или bzip2
- PharFileInfo::decompress() - Распаковывает Phar-файл в phar-архиве
- Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
- Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
- Phar::compressFiles() - Сжимает все файлы в текущем Phar-архиве
- Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
- Phar::compress() - Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия
- Phar::decompress() - Распаковывает весь Phar-архив

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