(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharFileInfo::compress β Π‘ΠΆΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ°ΠΉΠ» ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ zlib ΠΈΠ»ΠΈ bzip2
ΠΠ΅ΡΠΎΠ΄ ΡΠΆΠΈΠΌΠ°Π΅Ρ ΡΠ°ΠΉΠ» Π² phar-Π°ΡΡ ΠΈΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΡΠΆΠ°ΡΠΈΡ bzip2 ΠΈΠ»ΠΈ zlib. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ bzip2 ΠΈΠ»ΠΈ zlib. ΠΠ»Ρ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΡΠΆΠ΅ ΡΠΆΠ°ΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΆΠ°ΡΠΈΡ. ΠΠ°ΠΊ ΠΈ Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ phar-Π°ΡΡ ΠΈΠ²Π°, Π΄Π»Ρ ΡΠΆΠ°ΡΠΈΡ ΡΠ°ΠΉΠ»Π° Π² Phar-Π°ΡΡ ΠΈΠ²Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ INI-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ phar.readonly; Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π°ΡΡ ΠΈΠ²ΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ»Π°ΡΡ PharData.
Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true, Π΅ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΠΈΠ»ΠΈ false, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°.
ΠΠ΅ΡΠΎΠ΄ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ BadMethodCallException, Π΅ΡΠ»ΠΈ INI-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ phar.readonly Π²ΠΊΠ»ΡΡΠ΅Π½Π°, ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ bzip2 ΠΈΠ»ΠΈ zlib Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΡΠΆΠ°ΡΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ PharFileInfo::compress()
<?php
try {
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$file = $p['myfile.txt'];
var_dump($file->isCompressed(Phar::BZ2));
$p['myfile.txt']->compress(Phar::BZ2);
var_dump($file->isCompressed(Phar::BZ2));
} catch (Exception $e) {
echo 'ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» my.phar Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°: ', $e;
}
?>Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
bool(false) bool(true)