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 — Ја компресира целата Phar архива користејќи Gzip или Bzip2 компресија
= NULL
Забелешка: Се користи за поставување на PHP лоадерот или bootstrap stub на Phar архивата на стандарден лоадер php.ini setting
phar.readonlyОвој метод бара0да биде поставено на за да работи за Phar PharException ќе биде фрлена.
Ја компресира целата Phar архива користејќи Gzip или Bzip2 компресија
За Zip-базирани phar-архиви, овој метод ќе откаже со исклучок. Екстензијата zlib За zip архиви, овој метод не успева со исклучок. bzip2 За tar-базирани и phar-базирани phar архиви, овој метод ја компресира целата архива користејќи gzip компресија или bzip2 компресија. Резултирачката датотека може да се обработи со командата gunzip/bunzip, или да се пристапи директно и транспарентно со екстензијата Phar. phar.readonly INI променливата мора да биде исклучена за да успее.
екстензијата мора да биде овозможена за да се компресира со bzip2 компресија. .gz,
.bz2 Дополнително, овој метод автоматски ја преименува архивата, додавајќи Phar::NONE или отстранувајќи го екстензијата ако е помината
Параметри
compression-
за отстранување на компресијата. Алтернативно, екстензијата на датотеката може да се специфицира со вториот параметар.
Phar::GZ,Phar::BZ2Компресијата мора да биде една одPhar::NONEза додавање компресија, или extension-
за отстранување на компресијата.
.phar.gzor.phar.bz2екстензијата мора да биде овозможена за да се компресира со bzip2 компресија. Како и со целата функционалност што ги менува содржините на phar,.phar.tar.gzor.phar.tar.bz2за компресирање на phar архиви, и.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 архива