X Phar->getStub() for retrieving the stub of the phar [Marcus]
X add setUncompressed(), setCompressedGZ() and setCompressedBZ2() to
PharFileInfo class [Greg]
- * add uncompressAllFiles(), compressAllFilesGZ() and compressAllFilesBZ2()
- to Phar class
+ X add uncompressAllFiles(), compressAllFilesGZ() and compressAllFilesBZ2()
+ to Phar class [Greg]
X add PharFileInfo::setMetaData($metadata) [Marcus]
X add PharFileInfo::getMetaData() [Marcus]
* always throw exceptions from the Phar object, and E_RECOVERABLE_ERROR from
*result = 0;
}
#endif
-#if !HAVE_GZ
+#if !HAVE_ZLIB
if (entry->flags & PHAR_ENT_COMPRESSED_GZ) {
*result = 0;
}
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
"Cannot compress all files as Bzip2, some are compressed as gzip and cannot be uncompressed");
}
- pharobj_set_compression(&phar_obj->arc.archive->manifest, PHAR_ENT_COMPRESSED_GZ TSRMLS_CC);
+ pharobj_set_compression(&phar_obj->arc.archive->manifest, PHAR_ENT_COMPRESSED_BZ2 TSRMLS_CC);
phar_obj->arc.archive->is_modified = 1;
phar_flush(phar_obj->arc.archive, 0, 0 TSRMLS_CC);
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
"Cannot uncompress all files, some are compressed as bzip2 or gzip and cannot be uncompressed");
}
- pharobj_set_compression(&phar_obj->arc.archive->manifest, PHAR_ENT_COMPRESSED_GZ TSRMLS_CC);
+ pharobj_set_compression(&phar_obj->arc.archive->manifest, PHAR_ENT_COMPRESSED_NONE TSRMLS_CC);
phar_obj->arc.archive->is_modified = 1;
phar_flush(phar_obj->arc.archive, 0, 0 TSRMLS_CC);
--- /dev/null
+--TEST--
+Phar::compressAllFilesBZIP2()
+--SKIPIF--
+<?php if (!extension_loaded("phar")) print "skip"; ?>
+<?php if (!extension_loaded("bz2")) print "skip bz2 not present"; ?>
+--INI--
+phar.require_hash=0
+phar.readonly=0
+--FILE--
+<?php
+$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
+$pname = 'phar://' . $fname;
+$file = '<?php __HALT_COMPILER(); ?>';
+
+$files = array();
+$files['a'] = 'a';
+$files['b'] = 'b';
+$files['c'] = 'c';
+
+include 'phar_test.inc';
+
+$phar = new Phar($fname);
+
+var_dump(file_get_contents($pname . '/a'));
+var_dump($phar['a']->isCompressed());
+var_dump(file_get_contents($pname . '/b'));
+var_dump($phar['b']->isCompressed());
+var_dump(file_get_contents($pname . '/c'));
+var_dump($phar['c']->isCompressed());
+
+$phar = new Phar($fname);
+$phar->compressAllFilesBZIP2();
+var_dump(file_get_contents($pname . '/a'));
+var_dump($phar['a']->isCompressedGZ());
+var_dump($phar['a']->isCompressedBZIP2());
+var_dump(file_get_contents($pname . '/b'));
+var_dump($phar['b']->isCompressedGZ());
+var_dump($phar['b']->isCompressedBZIP2());
+var_dump(file_get_contents($pname . '/c'));
+var_dump($phar['c']->isCompressedGZ());
+var_dump($phar['b']->isCompressedBZIP2());
+
+?>
+===DONE===
+--CLEAN--
+<?php
+unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
+?>
+--EXPECTF--
+string(1) "a"
+bool(false)
+string(1) "b"
+bool(false)
+string(1) "c"
+bool(false)
+string(1) "a"
+bool(false)
+bool(true)
+string(1) "b"
+bool(false)
+bool(true)
+string(1) "c"
+bool(false)
+bool(true)
+===DONE===
--- /dev/null
+--TEST--
+Phar::compressAllFilesGZ()
+--SKIPIF--
+<?php if (!extension_loaded("phar")) print "skip"; ?>
+<?php if (!extension_loaded("zlib")) print "skip zlib not present"; ?>
+--INI--
+phar.require_hash=0
+phar.readonly=0
+--FILE--
+<?php
+$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
+$pname = 'phar://' . $fname;
+$file = '<?php __HALT_COMPILER(); ?>';
+
+$files = array();
+$files['a'] = 'a';
+$files['b'] = 'b';
+$files['c'] = 'c';
+
+include 'phar_test.inc';
+
+$phar = new Phar($fname);
+
+var_dump(file_get_contents($pname . '/a'));
+var_dump($phar['a']->isCompressed());
+var_dump(file_get_contents($pname . '/b'));
+var_dump($phar['b']->isCompressed());
+var_dump(file_get_contents($pname . '/c'));
+var_dump($phar['c']->isCompressed());
+
+$phar = new Phar($fname);
+$phar->compressAllFilesGZ();
+var_dump(file_get_contents($pname . '/a'));
+var_dump($phar['a']->isCompressedGZ());
+var_dump($phar['a']->isCompressedBZIP2());
+var_dump(file_get_contents($pname . '/b'));
+var_dump($phar['b']->isCompressedGZ());
+var_dump($phar['b']->isCompressedBZIP2());
+var_dump(file_get_contents($pname . '/c'));
+var_dump($phar['c']->isCompressedGZ());
+var_dump($phar['b']->isCompressedBZIP2());
+
+?>
+===DONE===
+--CLEAN--
+<?php
+unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
+?>
+--EXPECTF--
+string(1) "a"
+bool(false)
+string(1) "b"
+bool(false)
+string(1) "c"
+bool(false)
+string(1) "a"
+bool(true)
+bool(false)
+string(1) "b"
+bool(true)
+bool(false)
+string(1) "c"
+bool(true)
+bool(false)
+===DONE===
--- /dev/null
+--TEST--
+Phar::uncompressAllFiles()
+--SKIPIF--
+<?php if (!extension_loaded("phar")) print "skip"; ?>
+<?php if (!extension_loaded("zlib")) print "skip zlib not present"; ?>
+--INI--
+phar.require_hash=0
+phar.readonly=0
+--FILE--
+<?php
+$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
+$pname = 'phar://' . $fname;
+$file = '<?php __HALT_COMPILER(); ?>';
+
+$files = array();
+$files['a'] = 'a';
+$files['b'] = 'b';
+$files['c'] = 'c';
+
+include 'phar_test.inc';
+
+$phar = new Phar($fname);
+
+var_dump(file_get_contents($pname . '/a'));
+var_dump($phar['a']->isCompressed());
+var_dump(file_get_contents($pname . '/b'));
+var_dump($phar['b']->isCompressed());
+var_dump(file_get_contents($pname . '/c'));
+var_dump($phar['c']->isCompressed());
+
+$phar = new Phar($fname);
+$phar->compressAllFilesGZ();
+var_dump(file_get_contents($pname . '/a'));
+var_dump($phar['a']->isCompressedGZ());
+var_dump($phar['a']->isCompressedBZIP2());
+var_dump(file_get_contents($pname . '/b'));
+var_dump($phar['b']->isCompressedGZ());
+var_dump($phar['b']->isCompressedBZIP2());
+var_dump(file_get_contents($pname . '/c'));
+var_dump($phar['c']->isCompressedGZ());
+var_dump($phar['b']->isCompressedBZIP2());
+
+$phar->uncompressAllFiles();
+var_dump(file_get_contents($pname . '/a'));
+var_dump($phar['a']->isCompressed());
+var_dump(file_get_contents($pname . '/b'));
+var_dump($phar['a']->isCompressed());
+var_dump(file_get_contents($pname . '/c'));
+var_dump($phar['a']->isCompressed());
+
+?>
+===DONE===
+--CLEAN--
+<?php
+unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
+?>
+--EXPECTF--
+string(1) "a"
+bool(false)
+string(1) "b"
+bool(false)
+string(1) "c"
+bool(false)
+string(1) "a"
+bool(true)
+bool(false)
+string(1) "b"
+bool(true)
+bool(false)
+string(1) "c"
+bool(true)
+bool(false)
+string(1) "a"
+bool(false)
+string(1) "b"
+bool(false)
+string(1) "c"
+bool(false)
+===DONE===