(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::decompressFiles β Π Π°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ Phar-Π°ΡΡ ΠΈΠ²Π΅
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ 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)