(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharData::convertToExecutable β ΠΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΡ tar/zip-Π°ΡΡ ΠΈΠ²Π° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π² Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ phar-Π°ΡΡ ΠΈΠ²
$format = null, ?int $compression = null, ?string $extension = null): ?PharΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Phar ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄Π»Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ
phar.readonlyΠ² ΡΠ°ΠΉΠ»Π΅ php.ini Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅0, ΠΈΠ½Π°ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ±ΡΠΎΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ PharException.
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ Π½Π΅Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΠΎΠ³ΠΎ tar/zip-Π°ΡΡ ΠΈΠ²Π° Π° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ phar-Π°ΡΡ ΠΈΠ². ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ² (phar, tar ΠΈΠ»ΠΈ zip). Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ ΡΠΆΠ°ΡΠΈΠ΅ Π°ΡΡ ΠΈΠ²Π° ΡΠ΅Π»ΠΈΠΊΠΎΠΌ.
ΠΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Ρ, ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΠΎΡΠ°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ BadMethodCallException.
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ Π°ΡΡ ΠΈΠ² Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Phar. Π‘ΡΠ°ΡΡΠΉ Π°ΡΡ ΠΈΠ² ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅ΡΡΠΎΠ½ΡΡΡΠΌ.
format
ΠΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΠ½ΡΡΠ°Π½Ρ: Phar::PHAR, Phar::TAR,
ΠΈΠ»ΠΈ Phar::ZIP. ΠΡΠ»ΠΈ Π·Π°Π΄Π°Π½ΠΎ null, ΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ
ΡΠ°Π½ΡΠ½ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ.
compression
ΠΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΠ½ΡΡΠ°Π½Ρ: Phar::NONE (Π±Π΅Π· ΡΠΆΠ°ΡΠΈΡ Π²ΡΠ΅Π³ΠΎ Π°ΡΡ
ΠΈΠ²Π°),
Phar::GZ (zlib ΡΠΆΠ°ΡΠΈΠ΅),
Phar::BZ2 (bzip ΡΠΆΠ°ΡΠΈΠ΅).
extension
ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ²Π½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π°ΡΡ
ΠΈΠ²Π°.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ phar-Π°ΡΡ
ΠΈΠ²,
ΡΠ°ΠΉΠ»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π² ΡΠ²ΠΎΡΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΈ ΠΈΠΌΠ΅ΡΡ .phar.
ΠΡΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ Π² phar-Π°ΡΡ
ΠΈΠ²Π°, ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
.phar, .phar.gz ΠΈΠ»ΠΈ .phar.bz2,
Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠΆΠ°ΡΠΈΡ. ΠΠ»Ρ tar-Π°ΡΡ
ΠΈΠ²ΠΎΠ², ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
.phar.tar, .phar.tar.gz,
ΠΈ .phar.tar.bz2. ΠΠ»Ρ zip-Π°ΡΡ
ΠΈΠ²ΠΎΠ² ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
.phar.zip.
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Phar ΠΈ null Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΠ΅ΡΠΎΠ΄ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ BadMethodCallException Π΅ΡΠ»ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΠΆΠ°ΡΠΈΠ΅, Π»ΠΈΠ±ΠΎ Π΅ΡΠ»ΠΈ Π·Π°Π΄Π°Π½ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΆΠ°ΡΠΈΡ, Π΄Π»Ρ Π°ΡΡ ΠΈΠ²Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Phar::startBuffering(), Π° ΠΌΠ΅ΡΠΎΠ΄ Phar::stopBuffering() Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π»ΡΡ. ΠΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ UnexpectedValueException, Π΅ΡΠ»ΠΈ Π·Π°ΠΏΠΈΡΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Π°. Π Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ PharException, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π·Π°ΠΏΠΈΡΠΈ Π½Π° Π΄ΠΈΡΠΊ.
| ΠΠ΅ΡΡΠΈΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
| 8.0.0 |
format, compression ΠΈ localName ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ null.
|
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ PharData::convertToExecutable()
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ PharData::convertToExecutable():
<?php
try {
$tarphar = new PharData('myphar.tar');
// ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΠΌ Π² ΡΠΎΡΠΌΠ°Ρ phar
// ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ myphar.tar *Π½Π΅* ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ
$phar = $tarphar->convertToExecutable(Phar::PHAR); // creates myphar.phar
$phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
// ΡΠΎΠ·Π΄Π°ΡΠΌ myphar.phar.tgz
$compressed = $tarphar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
// ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ
}
?>