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