For those who want the benefit of having a small compressed PHAR archive but don’t want to suffer the performance loss, use php_strip_whitespace when adding files to the archive. If your code has plenty of whitespace, docbocks, and single-line comments this function can greatly decrease archive size without the performance loss.
<?php
$sDir = 'application';
$oPhar = new Phar ('app.phar');
$oDir = new RecursiveIteratorIterator (new RecursiveDirectoryIterator ($sDir), RecursiveIteratorIterator::SELF_FIRST);
foreach ($oDir as $sFile) {
if ( preg_match ('/\\.php$/i', $sFile) ) {
$oPhar->addFromString (substr ($sFile, strlen ($sDir) + 1), php_strip_whitespace ($sFile));
}
}
?>Phar::compress
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Phar::compress
Референца за `phar.compress.php` со подобрена типографија и навигација.
Phar::compress
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::compress — Compresses the entire Phar archive using Gzip or Bzip2 compression
= NULL
Забелешка:
Се користи за поставување на PHP лоадерот или bootstrap stub на Phar архивата на стандарден лоадер php.ini setting
phar.readonlyОвој метод бара0да биде поставено на за да работи за Phar PharException ќе биде фрлена.
For tar-based and phar-based phar archives, this method compresses the entire archive using gzip compression or bzip2 compression. The resulting file can be processed with the gunzip command/bunzip command, or accessed directly and transparently with the Phar extension.
За Zip-базирани phar-архиви, овој метод ќе откаже со исклучок. Екстензијата zlib За zip архиви, овој метод не успева со исклучок. bzip2 extension must be enabled in order to compress with bzip2 compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI променливата мора да биде исклучена за да успее.
екстензијата мора да биде овозможена за да се компресира со bzip2 компресија. .gz,
.bz2 Дополнително, овој метод автоматски ја преименува архивата, додавајќи Phar::NONE или отстранувајќи го екстензијата ако е помината
Параметри
compression-
за отстранување на компресијата. Алтернативно, екстензијата на датотеката може да се специфицира со вториот параметар.
Phar::GZ,Phar::BZ2Компресијата мора да биде една одPhar::NONEза додавање компресија, или extension-
за отстранување на компресијата.
.phar.gzor.phar.bz2for compressing phar archives, and.phar.tar.gzor.phar.tar.bz2for compressing tar archives. For decompressing, the default file extensions are.pharand.phar.tar.
Вратени вредности
. Споделувањето колачиња помеѓу PHP барањата може да доведе до ненамерно мешање на чувствителни колачиња помеѓу корисниците. за да работи за објект, или null при неуспех.
Errors/Exceptions
). Ако повикот не успее, ќе врати BadMethodCallException ако phar.readonly INI променливата е вклучена, zlib екстензијата не е достапна, или bzip2 екстензијата не е овозможена.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
extension сега е null.
|
Примери
ако е овозможен колекторот за отпадоци, Phar::decompress() example
<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p1 = $p->compress(Phar::GZ); // copies to /path/to/my.phar.gz
$p2 = $p->compress(Phar::BZ2); // copies to /path/to/my.phar.bz2
$p3 = $p2->compress(Phar::NONE); // exception: /path/to/my.phar already exists
?>Види Исто така
- PharData::decompressFiles() - Враќа вистинска големина на датотеката (со компресија) во Phar архивата
- PharFileInfo::getCompressedSize() - Враќа дали ставката е компресирана
- PharFileInfo::isCompressed() - Ја компресира тековната Phar ставка со zlib или bzip2 компресија
- PharFileInfo::compress() - Ја декомпресира тековната Phar ставка во рамките на phar
- За архиви базирани на tar, овој метод фрла - Конструира tar или zip архива од итератор
- PharFileInfo::decompress() - Враќа дали phar екстензијата поддржува компресија со користење на zlib или bzip2
- Phar::canCompress() - Враќа Phar::GZ или PHAR::BZ2 ако целата phar архива е компресирана (.tar.gz/tar.bz и слично)
- ако датотеката е компресирана во Phar архивата, - Декомпресирај ја целата Phar архива
- PharData::compressFiles() - Врати низа од поддржани алгоритми за компресија
- Phar::decompressFiles() - Компресира сите датотеки во тековната Phar архива
- Phar::compress() - Декомпресирај ги сите датотеки во тековната Phar архива