Phar::decompress
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::decompress β Π Π°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅Ρ Π²Π΅ΡΡ Phar-Π°ΡΡ
ΠΈΠ²
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Phar
ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄Π»Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ phar.readonly Π² ΡΠ°ΠΉΠ»Π΅ php.ini Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0,
ΠΈΠ½Π°ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ±ΡΠΎΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ PharException.
Π ΡΠ»ΡΡΠ°Π΅ Ρ phar-Π°ΡΡ
ΠΈΠ²Π°ΠΌΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π½Π° tar ΠΈΠ»ΠΈ phar, ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅Ρ Π²Π΅ΡΡ Π°ΡΡ
ΠΈΠ².
Π ΡΠ»ΡΡΠ°Π΅ Ρ phar-Π°ΡΡ
ΠΈΠ²Π°ΠΌΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π½Π° zip, Π²ΡΠ·ΠΎΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠΎΡΠ΅ΡΠΏΠΈΡ Π½Π΅ΡΠ΄Π°ΡΡ ΠΈ Π±ΡΠ΄Π΅Ρ
Π±ΡΠΎΡΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ»Ρ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π°ΡΡ
ΠΈΠ²Π°, ΡΠΆΠ°ΡΠΎΠ³ΠΎ ΠΏΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ gzip, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΡΠ½ ΠΌΠΎΠ΄ΡΠ»Ρ
zlib; Π΄Π»Ρ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π°ΡΡ
ΠΈΠ²Π°, ΡΠΆΠ°ΡΠΎΠ³ΠΎ ΠΏΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ bzip2,
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΡΠ½ ΠΌΠΎΠ΄ΡΠ»Ρ bzip2.
ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ, ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
phar-Π°ΡΡ
ΠΈΠ²Π°, Π΄Π»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ INI-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ
phar.readonly Π±ΡΠ»Π° ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π°.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° Π°ΡΡ
ΠΈΠ²Π°: ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
.phar Π΄Π»Ρ phar-Π°ΡΡ
ΠΈΠ²ΠΎΠ² ΠΈ .phar.tar Π΄Π»Ρ phar-Π°ΡΡ
ΠΈΠ²ΠΎΠ²,
ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ
Π½Π° tar. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π΄Π°Π½ΠΎ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
extension
-
Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ .phar
ΠΈ .phar.tar. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ
Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π²ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ phar-Π°ΡΡ
ΠΈΠ²Ρ
Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ .phar Π² ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Phar Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ null Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΡΠΈΠ±ΠΊΠΈ
ΠΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ BadMethodCallException,
Π΅ΡΠ»ΠΈ INI-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ phar.readonly
Π²ΠΊΠ»ΡΡΠ΅Π½Π°, ΠΌΠΎΠ΄ΡΠ»Ρ zlib Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΈΠ»ΠΈ
ΠΌΠΎΠ΄ΡΠ»Ρ bzip2 Π½Π΅ Π²ΠΊΠ»ΡΡΡΠ½.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
ΠΡΠΈΠΌΠ΅ΡΡ
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Phar::decompress()
<?php
$p = new Phar('/ΠΏΡΡΡ/ΠΊ/my.phar', 0, 'my.phar.gz');
$p['myfile.txt'] = 'ΠΏΡΠΈΠ²Π΅Ρ';
$p['myfile2.txt'] = 'ΠΏΡΠΈΠ²Π΅Ρ';
$p3 = $p2->decompress(); // ΡΠΎΠ·Π΄Π°ΡΡ /ΠΏΡΡΡ/ΠΊ/my.phar
?>
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅