1--TEST-- 2Phar: PharFileInfo compression-related methods 3--SKIPIF-- 4<?php if (!extension_loaded("phar")) die("skip"); ?> 5<?php if (!extension_loaded("zlib")) die("skip no zlib"); ?> 6<?php if (!extension_loaded("bz2")) die("skip no bz2"); ?> 7--INI-- 8phar.readonly=0 9--FILE-- 10<?php 11$fname = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar'; 12$pname = 'phar://' . $fname; 13 14$phar = new Phar($fname); 15 16$phar['a/b'] = 'hi there'; 17 18$b = $phar['a/b']; 19 20$b->isCompressed(array()); 21try { 22$b->isCompressed(25); 23} catch (Exception $e) { 24echo $e->getMessage() . "\n"; 25} 26try { 27$b->compress(25); 28} catch (Exception $e) { 29echo $e->getMessage() . "\n"; 30} 31$tar = $phar->convertToData(Phar::TAR); 32 33$c = $tar['a/b']; 34try { 35$c->compress(Phar::GZ); 36} catch (Exception $e) { 37echo $e->getMessage() . "\n"; 38} 39try { 40$phar['a']->compress(Phar::GZ); 41} catch (Exception $e) { 42echo $e->getMessage() . "\n"; 43} 44ini_set('phar.readonly', 1); 45try { 46$b->compress(Phar::GZ); 47} catch (Exception $e) { 48echo $e->getMessage() . "\n"; 49} 50ini_set('phar.readonly', 0); 51var_dump($b->compress(Phar::GZ)); 52var_dump($b->compress(Phar::GZ)); 53var_dump($b->compress(Phar::BZ2)); 54var_dump($b->compress(Phar::BZ2)); 55 56echo "decompress\n"; 57 58ini_set('phar.readonly', 1); 59try { 60$phar['a/b']->decompress(); 61} catch (Exception $e) { 62echo $e->getMessage() . "\n"; 63} 64ini_set('phar.readonly', 0); 65try { 66$phar['a']->decompress(); 67} catch (Exception $e) { 68echo $e->getMessage() . "\n"; 69} 70var_dump($b->decompress()); 71var_dump($b->decompress()); 72 73?> 74===DONE=== 75--CLEAN-- 76<?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar'); ?> 77<?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.tar'); ?> 78--EXPECTF-- 79Warning: PharFileInfo::isCompressed() expects parameter 1 to be int, array given in %spharfileinfo_compression.php on line 11 80Unknown compression type specified 81Unknown compression type specified 82Cannot compress with Gzip compression, not possible with tar-based phar archives 83Phar entry is a directory, cannot set compression 84Phar is readonly, cannot change compression 85bool(true) 86bool(true) 87bool(true) 88bool(true) 89decompress 90Phar is readonly, cannot decompress 91Phar entry is a directory, cannot set compression 92bool(true) 93bool(true) 94===DONE=== 95