}
/* }}} */
-/* {{{ proto bool PharFileInfo::isCompressed()
- * Returns whether the entry is compressed
+/* {{{ proto bool PharFileInfo::isCompressed([int compression_type])
+ * Returns whether the entry is compressed, and whether it is compressed with Phar::GZ or Phar::BZ2 if specified
*/
PHP_METHOD(PharFileInfo, isCompressed)
{
+ /* a number that is not Phar::GZ or Phar::BZ2 */
+ long method = 9021976;
PHAR_ENTRY_OBJECT();
- RETURN_BOOL(entry_obj->ent.entry->flags & PHAR_ENT_COMPRESSION_MASK);
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &method) == FAILURE) {
+ return;
+ }
+
+ switch (method) {
+ case 9021976:
+ RETURN_BOOL(entry_obj->ent.entry->flags & PHAR_ENT_COMPRESSION_MASK);
+ case PHAR_ENT_COMPRESSED_GZ:
+ RETURN_BOOL(entry_obj->ent.entry->flags & PHAR_ENT_COMPRESSED_GZ);
+ case PHAR_ENT_COMPRESSED_BZ2:
+ RETURN_BOOL(entry_obj->ent.entry->flags & PHAR_ENT_COMPRESSED_BZ2);
+ default:
+ zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC, \
+ "Unknown compression type specified"); \
+ }
}
/* }}} */
PHP_ME(PharFileInfo, getMetadata, NULL, 0)
PHP_ME(PharFileInfo, getPharFlags, NULL, 0)
PHP_ME(PharFileInfo, hasMetadata, NULL, 0)
- PHP_ME(PharFileInfo, isCompressed, NULL, 0)
- PHP_ME(PharFileInfo, isCompressedBZIP2, NULL, 0)
- PHP_ME(PharFileInfo, isCompressedGZ, NULL, 0)
+ PHP_ME(PharFileInfo, isCompressed, arginfo_phar_comp, 0)
PHP_ME(PharFileInfo, isCRCChecked, NULL, 0)
PHP_ME(PharFileInfo, setCompressedBZIP2, NULL, 0)
PHP_ME(PharFileInfo, setCompressedGZ, NULL, 0)
$phar = new Phar($fname);
$phar->compressFiles(Phar::BZ2);
var_dump(file_get_contents($pname . '/a'));
-var_dump($phar['a']->isCompressedGZ());
-var_dump($phar['a']->isCompressedBZIP2());
+var_dump($phar['a']->isCompressed(Phar::GZ));
+var_dump($phar['a']->isCompressed(Phar::BZ2));
var_dump(file_get_contents($pname . '/b'));
-var_dump($phar['b']->isCompressedGZ());
-var_dump($phar['b']->isCompressedBZIP2());
+var_dump($phar['b']->isCompressed(Phar::GZ));
+var_dump($phar['b']->isCompressed(Phar::BZ2));
var_dump(file_get_contents($pname . '/c'));
-var_dump($phar['c']->isCompressedGZ());
-var_dump($phar['b']->isCompressedBZIP2());
+var_dump($phar['c']->isCompressed(Phar::GZ));
+var_dump($phar['b']->isCompressed(Phar::BZ2));
?>
===DONE===
$phar = new Phar($fname);
$phar->compressFiles(Phar::GZ);
var_dump(file_get_contents($pname . '/a'));
-var_dump($phar['a']->isCompressedGZ());
-var_dump($phar['a']->isCompressedBZIP2());
+var_dump($phar['a']->isCompressed(Phar::GZ));
+var_dump($phar['a']->isCompressed(Phar::BZ2));
var_dump(file_get_contents($pname . '/b'));
-var_dump($phar['b']->isCompressedGZ());
-var_dump($phar['b']->isCompressedBZIP2());
+var_dump($phar['b']->isCompressed(Phar::GZ));
+var_dump($phar['b']->isCompressed(Phar::BZ2));
var_dump(file_get_contents($pname . '/c'));
-var_dump($phar['c']->isCompressedGZ());
-var_dump($phar['b']->isCompressedBZIP2());
+var_dump($phar['c']->isCompressed(Phar::GZ));
+var_dump($phar['b']->isCompressed(Phar::BZ2));
?>
===DONE===
--TEST--
-Phar::decompressAllFiles()
+Phar::decompressFiles()
--SKIPIF--
<?php if (!extension_loaded("phar")) die("skip"); ?>
<?php if (!extension_loaded("zlib")) die("skip zlib not present"); ?>
$phar = new Phar($fname);
$phar->compressFiles(Phar::GZ);
var_dump(file_get_contents($pname . '/a'));
-var_dump($phar['a']->isCompressedGZ());
-var_dump($phar['a']->isCompressedBZIP2());
+var_dump($phar['a']->isCompressed(Phar::GZ));
+var_dump($phar['a']->isCompressed(Phar::BZ2));
var_dump(file_get_contents($pname . '/b'));
-var_dump($phar['b']->isCompressedGZ());
-var_dump($phar['b']->isCompressedBZIP2());
+var_dump($phar['b']->isCompressed(Phar::GZ));
+var_dump($phar['b']->isCompressed(Phar::BZ2));
var_dump(file_get_contents($pname . '/c'));
-var_dump($phar['c']->isCompressedGZ());
-var_dump($phar['b']->isCompressedBZIP2());
+var_dump($phar['c']->isCompressed(Phar::GZ));
+var_dump($phar['b']->isCompressed(Phar::BZ2));
$phar->decompressFiles();
var_dump(file_get_contents($pname . '/a'));