summaryrefslogtreecommitdiff
path: root/ext/phar
diff options
context:
space:
mode:
authorGreg Beaver <cellog@php.net>2008-04-11 04:20:15 +0000
committerGreg Beaver <cellog@php.net>2008-04-11 04:20:15 +0000
commitc0d82e966fc63320f377bfe88cf992b33e347ac3 (patch)
tree8b59fe853fa8587962d5e6e49dd37a70081c5c0e /ext/phar
parentd90bf2ca0c220d4d50efe1f4e46489b22338df43 (diff)
downloadphp-git-c0d82e966fc63320f377bfe88cf992b33e347ac3.tar.gz
refactor compress/convertToTar/convertToPhar/convertToZip/convertToExecutable/convertToData
into 2 methods: convertToExecutable/convertToData. Both methods accept 3 optional parameters 1 archive type, Phar::PHAR, Phar::TAR, or Phar::ZIP 2 compression Phar::NONE, Phar::GZ, or Phar::BZ2 3 file extension. Default is <format>.<compression> where .phar.tar is executable .tar convertToExecutable always returns a Phar object convertToData always returns a PharData object also added Phar::PHAR, Phar::TAR, and Phar::ZIP class constants [DOC]
Diffstat (limited to 'ext/phar')
-rwxr-xr-xext/phar/phar_internal.h4
-rwxr-xr-xext/phar/phar_object.c314
-rw-r--r--ext/phar/tests/phar_convert_repeated.phpt12
-rw-r--r--ext/phar/tests/phar_convert_repeated_b.phpt14
-rw-r--r--ext/phar/tests/phar_convert_tar.phpt2
-rw-r--r--ext/phar/tests/phar_convert_tar2.phpt2
-rw-r--r--ext/phar/tests/phar_convert_tar3.phpt2
-rw-r--r--ext/phar/tests/phar_convert_zip.phpt2
-rw-r--r--ext/phar/tests/tar/phar_convert_phar.phpt4
-rw-r--r--ext/phar/tests/tar/phar_convert_phar2.phpt4
-rw-r--r--ext/phar/tests/tar/phar_convert_phar3.phpt4
-rw-r--r--ext/phar/tests/tar/tar_makebz2.phpt2
-rw-r--r--ext/phar/tests/tar/tar_makegz.phpt3
-rw-r--r--ext/phar/tests/zip/phar_convert_phar.phpt4
14 files changed, 159 insertions, 214 deletions
diff --git a/ext/phar/phar_internal.h b/ext/phar/phar_internal.h
index 384b5b2b0b..a68b64667c 100755
--- a/ext/phar/phar_internal.h
+++ b/ext/phar/phar_internal.h
@@ -121,6 +121,10 @@
#define PHAR_ENT_PERM_DEF_FILE 0x000001B6
#define PHAR_ENT_PERM_DEF_DIR 0x000001FF
+#define PHAR_FORMAT_PHAR 0
+#define PHAR_FORMAT_TAR 1
+#define PHAR_FORMAT_ZIP 2
+
#define TAR_FILE '0'
#define TAR_LINK '1'
#define TAR_SYMLINK '2'
diff --git a/ext/phar/phar_object.c b/ext/phar/phar_object.c
index c23ea9c0da..c72d693998 100755
--- a/ext/phar/phar_object.c
+++ b/ext/phar/phar_object.c
@@ -1744,10 +1744,10 @@ static zval *phar_convert_to_other(phar_archive_data *source, int convert, char
phar->is_data = source->is_data;
switch (convert) {
- case 1 :
+ case PHAR_FORMAT_TAR :
phar->is_tar = 1;
break;
- case 2 :
+ case PHAR_FORMAT_ZIP :
phar->is_zip = 1;
break;
default :
@@ -1822,110 +1822,65 @@ static zval *phar_convert_to_other(phar_archive_data *source, int convert, char
}
/* }}} */
-/* {{{ proto object Phar::convertToTar([string file_ext])
- * Convert a phar or phar.zip archive to the tar file format. The first
- * parameter can be one of Phar::GZ or Phar::BZ2 to specify whole-file
- * compression. The second parameter allows the user to determine the new
- * filename extension (default is phar.tar/phar.tar.bz2/phar.tar.gz).
- * Both parameters are optional.
- */
-PHP_METHOD(Phar, convertToTar)
-{
- char *ext = NULL;
- int ext_len = 0, save;
- zval *ret;
- PHAR_ARCHIVE_OBJECT();
-
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &ext, &ext_len) == FAILURE) {
- return;
- }
-
- if (phar_obj->arc.archive->is_tar) {
- RETURN_TRUE;
- }
- if (PHAR_G(readonly)) {
- save = phar_obj->arc.archive->is_data;
- phar_obj->arc.archive->is_data = 1;
- }
-
- ret = phar_convert_to_other(phar_obj->arc.archive, 1, ext, phar_obj->arc.archive->flags TSRMLS_CC);
- phar_obj->arc.archive->is_data = save;
- if (ret) {
- RETURN_ZVAL(ret, 1, 1);
- } else {
- RETURN_NULL();
- }
-}
-/* }}} */
-
-/* {{{ proto object Phar::convertToZip([string file_ext])
- * Convert a phar or phar.tar archive to the zip file format. The single
- * optional argument allows the user to determine the new filename extension
- * (default is phar.zip).
+/* {{{ proto object Phar::convertToExecutable([int format[, int compression [, string file_ext]]])
+ * Convert a phar.tar or phar.zip archive to the phar file format. The
+ * optional parameter allows the user to determine the new
+ * filename extension (default is phar).
*/
-PHP_METHOD(Phar, convertToZip)
+PHP_METHOD(Phar, convertToExecutable)
{
char *ext = NULL;
- int ext_len = 0, save;
+ int is_data, ext_len = 0;
+ php_uint32 flags;
zval *ret;
+ /* a number that is not 0, 1 or 2 (Which is also Greg's birthday, so there) */
+ long format = 9021976, method = 9021976;
PHAR_ARCHIVE_OBJECT();
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &ext, &ext_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|lls", &format, &method, &ext, &ext_len) == FAILURE) {
return;
}
- if (phar_obj->arc.archive->is_zip) {
- RETURN_TRUE;
- }
-
if (PHAR_G(readonly)) {
- save = phar_obj->arc.archive->is_data;
- phar_obj->arc.archive->is_data = 1;
- }
-
- ret = phar_convert_to_other(phar_obj->arc.archive, 2, ext, PHAR_FILE_COMPRESSED_NONE TSRMLS_CC);
- phar_obj->arc.archive->is_data = save;
- if (ret) {
- RETURN_ZVAL(ret, 1, 1);
- } else {
- RETURN_NULL();
- }
-}
-/* }}} */
-
-/* {{{ proto object Phar::compress(int method)
- * Compress a .tar, or .phar.tar with whole-file compression
- * The parameter can be one of Phar::GZ or Phar::BZ2 to specify
- * the kind of compression desired
- */
-PHP_METHOD(Phar, compress)
-{
- long method = 0;
- php_uint32 flags;
- zval *ret;
- PHAR_ARCHIVE_OBJECT();
-
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &method) == FAILURE) {
- return;
- }
-
- if (PHAR_G(readonly) && !phar_obj->arc.archive->is_data) {
zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0 TSRMLS_CC,
- "Cannot compress phar archive, phar is read-only");
+ "Cannot write out executable phar archive, phar is read-only");
return;
}
- if (phar_obj->arc.archive->is_zip) {
- zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0 TSRMLS_CC,
- "Cannot compress zipbased archives with whole-archive compression");
- return;
+ switch (format) {
+ case 9021976:
+ /* by default, use the existing format */
+ if (phar_obj->arc.archive->is_tar) {
+ format = PHAR_FORMAT_TAR;
+ } else if (phar_obj->arc.archive->is_zip) {
+ format = PHAR_FORMAT_ZIP;
+ } else {
+ format = PHAR_FORMAT_PHAR;
+ }
+ break;
+ case PHAR_FORMAT_PHAR:
+ case PHAR_FORMAT_TAR:
+ case PHAR_FORMAT_ZIP:
+ break;
+ default:
+ zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
+ "Unknown file format specified, please pass one of Phar::PHAR, Phar::TAR or Phar::ZIP");
+ return;
}
switch (method) {
+ case 9021976:
+ flags = phar_obj->arc.archive->flags & PHAR_FILE_COMPRESSION_MASK;
+ break;
case 0:
flags = PHAR_FILE_COMPRESSED_NONE;
break;
case PHAR_ENT_COMPRESSED_GZ:
+ if (format == PHAR_FORMAT_ZIP) {
+ zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
+ "Cannot compress entire archive with gzip, zip archives do not support whole-archive compression");
+ return;
+ }
if (!phar_has_zlib) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
"Cannot compress entire archive with gzip, enable ext/zlib in php.ini");
@@ -1935,6 +1890,11 @@ PHP_METHOD(Phar, compress)
break;
case PHAR_ENT_COMPRESSED_BZ2:
+ if (format == PHAR_FORMAT_ZIP) {
+ zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
+ "Cannot compress entire archive with bz2, zip archives do not support whole-archive compression");
+ return;
+ }
if (!phar_has_bz2) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
"Cannot compress entire archive with bz2, enable ext/bz2 in php.ini");
@@ -1948,90 +1908,10 @@ PHP_METHOD(Phar, compress)
return;
}
- if (phar_obj->arc.archive->is_tar) {
- ret = phar_convert_to_other(phar_obj->arc.archive, 1, NULL, flags TSRMLS_CC);
- } else {
- ret = phar_convert_to_other(phar_obj->arc.archive, 0, NULL, flags TSRMLS_CC);
- }
- if (ret) {
- RETURN_ZVAL(ret, 1, 1);
- } else {
- RETURN_NULL();
- }
-}
-/* }}} */
-
-
-/* {{{ proto object Phar::convertToPhar([string file_ext])
- * Convert a phar.tar or phar.zip archive to the phar file format. The
- * optional parameter allows the user to determine the new
- * filename extension (default is phar).
- */
-PHP_METHOD(Phar, convertToPhar)
-{
- char *ext = NULL;
- int ext_len = 0;
- zval *ret;
- PHAR_ARCHIVE_OBJECT();
-
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &ext, &ext_len) == FAILURE) {
- return;
- }
-
- if (!phar_obj->arc.archive->is_tar && !phar_obj->arc.archive->is_zip) {
- RETURN_TRUE;
- }
-
- if (PHAR_G(readonly)) { /* Don't override this one for is_data */
- zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0 TSRMLS_CC,
- "Cannot write out phar archive, phar is read-only");
- return;
- }
-
- ret = phar_convert_to_other(phar_obj->arc.archive, 0, ext, phar_obj->arc.archive->flags TSRMLS_CC);
- if (ret) {
- RETURN_ZVAL(ret, 1, 1);
- } else {
- RETURN_NULL();
- }
-}
-/* }}} */
-
-/* {{{ proto object Phar::convertToExecutable([string file_ext])
- * Convert a .tar or .zip archive to an executable .phar.tar or .phar.zip.
- * The optional parameter allows the user to determine the new
- * filename extension (default is phar.zip or phar.tar).
- */
-PHP_METHOD(Phar, convertToExecutable)
-{
- char *ext = NULL;
- int ext_len = 0;
- zval *ret;
- PHAR_ARCHIVE_OBJECT();
-
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &ext, &ext_len) == FAILURE) {
- return;
- }
-
- if (!phar_obj->arc.archive->is_tar && !phar_obj->arc.archive->is_zip) {
- RETURN_TRUE;
- }
- if (!phar_obj->arc.archive->is_data) {
- RETURN_TRUE;
- }
-
- if (PHAR_G(readonly)) { /* Don't override this one for is_data */
- zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0 TSRMLS_CC,
- "Cannot convert phar archive to executable format, phar is read-only");
- return;
- }
-
+ is_data = phar_obj->arc.archive->is_data;
phar_obj->arc.archive->is_data = 0;
- if (phar_obj->arc.archive->is_tar) {
- ret = phar_convert_to_other(phar_obj->arc.archive, 1, ext, phar_obj->arc.archive->flags TSRMLS_CC);
- } else {
- ret = phar_convert_to_other(phar_obj->arc.archive, 2, ext, phar_obj->arc.archive->flags TSRMLS_CC);
- }
+ ret = phar_convert_to_other(phar_obj->arc.archive, format, ext, flags TSRMLS_CC);
+ phar_obj->arc.archive->is_data = is_data;
if (ret) {
RETURN_ZVAL(ret, 1, 1);
} else {
@@ -2040,35 +1920,94 @@ PHP_METHOD(Phar, convertToExecutable)
}
/* }}} */
-/* {{{ proto object Phar::convertToData([string file_ext])
- * Convert a phar.tar or phar.zip archive to a non-executable .tar or .zip.
+/* {{{ proto object Phar::convertToData([int format[, int compression [, string file_ext]]])
+ * Convert an archive to a non-executable .tar or .zip.
* The optional parameter allows the user to determine the new
* filename extension (default is .zip or .tar).
*/
PHP_METHOD(Phar, convertToData)
{
char *ext = NULL;
- int ext_len = 0;
+ int is_data, ext_len = 0;
+ php_uint32 flags;
zval *ret;
+ /* a number that is not 0, 1 or 2 (Which is also Greg's birthday so there) */
+ long format = 9021976, method = 9021976;
PHAR_ARCHIVE_OBJECT();
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &ext, &ext_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|lls", &format, &method, &ext, &ext_len) == FAILURE) {
return;
}
- if (!phar_obj->arc.archive->is_tar && !phar_obj->arc.archive->is_zip) {
- RETURN_TRUE;
+ switch (format) {
+ case 9021976:
+ /* by default, use the existing format */
+ if (phar_obj->arc.archive->is_tar) {
+ format = PHAR_FORMAT_TAR;
+ } else if (phar_obj->arc.archive->is_zip) {
+ format = PHAR_FORMAT_ZIP;
+ } else {
+ zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0 TSRMLS_CC,
+ "Cannot write out data phar archive, use Phar::TAR or Phar::ZIP");
+ }
+ break;
+ case PHAR_FORMAT_PHAR:
+ zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0 TSRMLS_CC,
+ "Cannot write out data phar archive, use Phar::TAR or Phar::ZIP");
+ return;
+ case PHAR_FORMAT_TAR:
+ case PHAR_FORMAT_ZIP:
+ break;
+ default:
+ zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
+ "Unknown file format specified, please pass one of Phar::TAR or Phar::ZIP");
+ return;
}
- if (!phar_obj->arc.archive->is_data) {
- RETURN_TRUE;
+
+ switch (method) {
+ case 9021976:
+ flags = phar_obj->arc.archive->flags & PHAR_FILE_COMPRESSION_MASK;
+ break;
+ case 0:
+ flags = PHAR_FILE_COMPRESSED_NONE;
+ break;
+ case PHAR_ENT_COMPRESSED_GZ:
+ if (format == PHAR_FORMAT_ZIP) {
+ zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
+ "Cannot compress entire archive with gzip, zip archives do not support whole-archive compression");
+ return;
+ }
+ if (!phar_has_zlib) {
+ zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
+ "Cannot compress entire archive with gzip, enable ext/zlib in php.ini");
+ return;
+ }
+ flags = PHAR_FILE_COMPRESSED_GZ;
+ break;
+
+ case PHAR_ENT_COMPRESSED_BZ2:
+ if (format == PHAR_FORMAT_ZIP) {
+ zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
+ "Cannot compress entire archive with bz2, zip archives do not support whole-archive compression");
+ return;
+ }
+ if (!phar_has_bz2) {
+ zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
+ "Cannot compress entire archive with bz2, enable ext/bz2 in php.ini");
+ return;
+ }
+ flags = PHAR_FILE_COMPRESSED_BZ2;
+ break;
+ default:
+ zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
+ "Unknown compression specified, please pass one of Phar::GZ or Phar::BZ2");
+ return;
}
+ is_data = phar_obj->arc.archive->is_data;
phar_obj->arc.archive->is_data = 1;
- if (phar_obj->arc.archive->is_tar) {
- ret = phar_convert_to_other(phar_obj->arc.archive, 1, ext, phar_obj->arc.archive->flags TSRMLS_CC);
- } else {
- ret = phar_convert_to_other(phar_obj->arc.archive, 2, ext, phar_obj->arc.archive->flags TSRMLS_CC);
- }
+ ret = phar_convert_to_other(phar_obj->arc.archive, format, ext, flags TSRMLS_CC);
+ phar_obj->arc.archive->is_data = is_data;
if (ret) {
RETURN_ZVAL(ret, 1, 1);
} else {
@@ -3836,6 +3775,8 @@ ZEND_END_ARG_INFO();
static
ZEND_BEGIN_ARG_INFO_EX(arginfo_phar_conv, 0, 0, 0)
+ ZEND_ARG_INFO(0, format)
+ ZEND_ARG_INFO(0, compression_type)
ZEND_ARG_INFO(0, file_ext)
ZEND_END_ARG_INFO();
@@ -3920,12 +3861,10 @@ zend_function_entry php_archive_methods[] = {
PHP_ME(Phar, addFile, arginfo_phar_addfile, ZEND_ACC_PUBLIC)
PHP_ME(Phar, addFromString, arginfo_phar_fromstring, ZEND_ACC_PUBLIC)
PHP_ME(Phar, buildFromIterator, arginfo_phar_build, ZEND_ACC_PUBLIC)
- PHP_ME(Phar, compress, arginfo_phar_comp, ZEND_ACC_PUBLIC)
PHP_ME(Phar, compressFiles, arginfo_phar_comp, ZEND_ACC_PUBLIC)
PHP_ME(Phar, decompressFiles, NULL, ZEND_ACC_PUBLIC)
- PHP_ME(Phar, convertToPhar, arginfo_phar_conv, ZEND_ACC_PUBLIC)
- PHP_ME(Phar, convertToTar, arginfo_phar_conv, ZEND_ACC_PUBLIC)
- PHP_ME(Phar, convertToZip, arginfo_phar_conv, ZEND_ACC_PUBLIC)
+ PHP_ME(Phar, convertToExecutable, arginfo_phar_conv, ZEND_ACC_PUBLIC)
+ PHP_ME(Phar, convertToData, arginfo_phar_conv, ZEND_ACC_PUBLIC)
PHP_ME(Phar, copy, arginfo_phar_copy, ZEND_ACC_PUBLIC)
PHP_ME(Phar, count, NULL, ZEND_ACC_PUBLIC)
PHP_ME(Phar, delete, arginfo_phar_delete, ZEND_ACC_PUBLIC)
@@ -3944,8 +3883,6 @@ zend_function_entry php_archive_methods[] = {
PHP_ME(Phar, isPhar, NULL, ZEND_ACC_PUBLIC)
PHP_ME(Phar, isTar, NULL, ZEND_ACC_PUBLIC)
PHP_ME(Phar, isZip, NULL, ZEND_ACC_PUBLIC)
- PHP_ME(Phar, convertToExecutable, arginfo_phar_conv, ZEND_ACC_PUBLIC)
- PHP_ME(Phar, convertToData, arginfo_phar_conv, ZEND_ACC_PUBLIC)
PHP_ME(Phar, offsetExists, arginfo_phar_offsetExists, ZEND_ACC_PUBLIC)
PHP_ME(Phar, offsetGet, arginfo_phar_offsetExists, ZEND_ACC_PUBLIC)
PHP_ME(Phar, offsetSet, arginfo_phar_offsetSet, ZEND_ACC_PUBLIC)
@@ -4058,6 +3995,9 @@ void phar_object_init(TSRMLS_D) /* {{{ */
REGISTER_PHAR_CLASS_CONST_LONG(phar_ce_archive, "BZ2", PHAR_ENT_COMPRESSED_BZ2)
REGISTER_PHAR_CLASS_CONST_LONG(phar_ce_archive, "GZ", PHAR_ENT_COMPRESSED_GZ)
REGISTER_PHAR_CLASS_CONST_LONG(phar_ce_archive, "NONE", PHAR_ENT_COMPRESSED_NONE)
+ REGISTER_PHAR_CLASS_CONST_LONG(phar_ce_archive, "PHAR", PHAR_FORMAT_PHAR)
+ REGISTER_PHAR_CLASS_CONST_LONG(phar_ce_archive, "TAR", PHAR_FORMAT_TAR)
+ REGISTER_PHAR_CLASS_CONST_LONG(phar_ce_archive, "ZIP", PHAR_FORMAT_ZIP)
REGISTER_PHAR_CLASS_CONST_LONG(phar_ce_archive, "COMPRESSED", PHAR_ENT_COMPRESSION_MASK)
REGISTER_PHAR_CLASS_CONST_LONG(phar_ce_archive, "PHP", PHAR_MIME_PHP)
REGISTER_PHAR_CLASS_CONST_LONG(phar_ce_archive, "PHPS", PHAR_MIME_PHPS)
diff --git a/ext/phar/tests/phar_convert_repeated.phpt b/ext/phar/tests/phar_convert_repeated.phpt
index ab6ec8aba6..f6fba99247 100644
--- a/ext/phar/tests/phar_convert_repeated.phpt
+++ b/ext/phar/tests/phar_convert_repeated.phpt
@@ -32,7 +32,7 @@ var_dump($phar->getAlias());
echo "================= convertToTar() =====================\n";
-$phar = $phar->convertToTar();
+$phar = $phar->convertToExecutable(Phar::TAR);
var_dump($phar->isPhar());
var_dump($phar->isTar());
var_dump($phar->isZip());
@@ -41,7 +41,7 @@ var_dump($phar->getAlias());
echo "================= convertToZip() =====================\n";
-$phar = $phar->convertToZip();
+$phar = $phar->convertToExecutable(Phar::ZIP);
var_dump($phar->isPhar());
var_dump($phar->isTar());
var_dump($phar->isZip());
@@ -50,7 +50,7 @@ var_dump($phar->getAlias());
echo "================= convertToPhar() ====================\n";
-$phar = $phar->convertToPhar('.2.phar');
+$phar = $phar->convertToExecutable(Phar::PHAR, Phar::NONE, '.2.phar');
var_dump($phar->isPhar());
var_dump($phar->isTar());
var_dump($phar->isZip());
@@ -59,7 +59,7 @@ var_dump($phar->getAlias());
echo "================= convertToZip() =====================\n";
-$phar = $phar->convertToZip('.2.phar.zip');
+$phar = $phar->convertToExecutable(Phar::ZIP, Phar::NONE, '.2.phar.zip');
var_dump($phar->isPhar());
var_dump($phar->isTar());
var_dump($phar->isZip());
@@ -68,7 +68,7 @@ var_dump($phar->getAlias());
echo "================= convertToTar() =====================\n";
-$phar = $phar->convertToTar('2.phar.tar');
+$phar = $phar->convertToExecutable(Phar::TAR, Phar::NONE, '2.phar.tar');
var_dump($phar->isPhar());
var_dump($phar->isTar());
var_dump($phar->isZip());
@@ -77,7 +77,7 @@ var_dump($phar->getAlias());
echo "================= convertToZip() =====================\n";
-$phar = $phar->convertToZip('3.phar.zip');
+$phar = $phar->convertToExecutable(Phar::ZIP, Phar::NONE, '3.phar.zip');
var_dump($phar->isPhar());
var_dump($phar->isTar());
var_dump($phar->isZip());
diff --git a/ext/phar/tests/phar_convert_repeated_b.phpt b/ext/phar/tests/phar_convert_repeated_b.phpt
index 6ed0070270..2b29c23fb4 100644
--- a/ext/phar/tests/phar_convert_repeated_b.phpt
+++ b/ext/phar/tests/phar_convert_repeated_b.phpt
@@ -23,7 +23,7 @@ var_dump($phar->getAlias());
echo "================= convertToTar() =====================\n";
-$phar = $phar->convertToTar();
+$phar = $phar->convertToData(Phar::TAR);
var_dump($phar->isPhar());
var_dump($phar->isTar());
var_dump($phar->isZip());
@@ -32,7 +32,7 @@ var_dump($phar->getAlias());
echo "================= convertToZip() =====================\n";
-$phar = $phar->convertToZip('.1.zip');
+$phar = $phar->convertToData(Phar::ZIP, Phar::NONE, '.1.zip');
var_dump($phar->isPhar());
var_dump($phar->isTar());
var_dump($phar->isZip());
@@ -42,7 +42,7 @@ var_dump($phar->getAlias());
echo "================= convertToPhar() ====================\n";
try {
- $phar = $phar->convertToPhar();
+ $phar = $phar->convertToExecutable(Phar::PHAR);
var_dump($phar->isPhar());
var_dump($phar->isTar());
var_dump($phar->isZip());
@@ -54,7 +54,7 @@ try {
echo "================ convertToTar(GZ) ====================\n";
-$phar = $phar->convertToTar('.2.tar')->compress(Phar::GZ);
+$phar = $phar->convertToData(Phar::TAR, Phar::GZ, '.2.tar');
var_dump($phar->isPhar());
var_dump($phar->isTar());
var_dump($phar->isZip());
@@ -64,7 +64,7 @@ var_dump($phar->getAlias());
echo "================= convertToPhar() ====================\n";
try {
- $phar = $phar->convertToPhar();
+ $phar = $phar->convertToExecutable(Phar::PHAR);
var_dump($phar->isPhar());
var_dump($phar->isTar());
var_dump($phar->isZip());
@@ -105,7 +105,7 @@ bool(true)
string(0) ""
NULL
================= convertToPhar() ====================
-Cannot write out phar archive, phar is read-only
+Cannot write out executable phar archive, phar is read-only
================ convertToTar(GZ) ====================
bool(false)
bool(true)
@@ -113,5 +113,5 @@ bool(false)
string(0) ""
NULL
================= convertToPhar() ====================
-Cannot write out phar archive, phar is read-only
+Cannot write out executable phar archive, phar is read-only
===DONE=== \ No newline at end of file
diff --git a/ext/phar/tests/phar_convert_tar.phpt b/ext/phar/tests/phar_convert_tar.phpt
index 92ff1e36d7..72e71ed793 100644
--- a/ext/phar/tests/phar_convert_tar.phpt
+++ b/ext/phar/tests/phar_convert_tar.phpt
@@ -26,7 +26,7 @@ $phar = new Phar($fname);
var_dump($phar->isTar());
var_dump($phar->getStub());
-$phar = $phar->convertToTar();
+$phar = $phar->convertToExecutable(Phar::TAR);
var_dump($phar->isTar());
var_dump($phar->getStub());
diff --git a/ext/phar/tests/phar_convert_tar2.phpt b/ext/phar/tests/phar_convert_tar2.phpt
index edb2e1eef0..78858aff12 100644
--- a/ext/phar/tests/phar_convert_tar2.phpt
+++ b/ext/phar/tests/phar_convert_tar2.phpt
@@ -28,7 +28,7 @@ var_dump($phar->isTar());
var_dump($phar->isCompressed());
var_dump($phar->getStub());
-$phar = $phar->convertToTar()->compress(Phar::GZ);
+$phar = $phar->convertToExecutable(Phar::TAR, Phar::GZ);
var_dump($phar->isTar());
var_dump($phar->isCompressed());
var_dump($phar->getStub());
diff --git a/ext/phar/tests/phar_convert_tar3.phpt b/ext/phar/tests/phar_convert_tar3.phpt
index 91e2fc5a36..ac3f1fb201 100644
--- a/ext/phar/tests/phar_convert_tar3.phpt
+++ b/ext/phar/tests/phar_convert_tar3.phpt
@@ -28,7 +28,7 @@ var_dump($phar->isTar());
var_dump($phar->isCompressed());
var_dump($phar->getStub());
-$phar = $phar->convertToTar()->compress(Phar::BZ2);
+$phar = $phar->convertToExecutable(Phar::TAR, Phar::BZ2);
var_dump($phar->isTar());
var_dump($phar->isCompressed());
var_dump($phar->getStub());
diff --git a/ext/phar/tests/phar_convert_zip.phpt b/ext/phar/tests/phar_convert_zip.phpt
index c9e9769917..4615ab4c1c 100644
--- a/ext/phar/tests/phar_convert_zip.phpt
+++ b/ext/phar/tests/phar_convert_zip.phpt
@@ -26,7 +26,7 @@ $phar = new Phar($fname);
var_dump($phar->isZip());
var_dump($phar->getStub());
-$phar = $phar->convertToZip();
+$phar = $phar->convertToExecutable(Phar::ZIP);
var_dump($phar->isZip());
var_dump($phar->getStub());
diff --git a/ext/phar/tests/tar/phar_convert_phar.phpt b/ext/phar/tests/tar/phar_convert_phar.phpt
index dea5a78af6..3f982a9a1e 100644
--- a/ext/phar/tests/tar/phar_convert_phar.phpt
+++ b/ext/phar/tests/tar/phar_convert_phar.phpt
@@ -17,13 +17,13 @@ $phar->stopBuffering();
var_dump($phar->isTar());
var_dump(strlen($phar->getStub()));
-$phar = $phar->convertToTar();
+$phar = $phar->convertToExecutable(Phar::TAR);
var_dump($phar->isTar());
var_dump($phar->getStub());
$phar['a'] = 'hi there';
-$phar = $phar->convertToPhar('.3.phar');
+$phar = $phar->convertToExecutable(Phar::PHAR, Phar::NONE, '.3.phar');
var_dump($phar->isPhar());
var_dump(strlen($phar->getStub()));
diff --git a/ext/phar/tests/tar/phar_convert_phar2.phpt b/ext/phar/tests/tar/phar_convert_phar2.phpt
index 27113728e1..b0e360af9b 100644
--- a/ext/phar/tests/tar/phar_convert_phar2.phpt
+++ b/ext/phar/tests/tar/phar_convert_phar2.phpt
@@ -17,13 +17,13 @@ $phar->stopBuffering();
var_dump($phar->isTar());
var_dump(strlen($phar->getStub()));
-$phar = $phar->convertToTar();
+$phar = $phar->convertToExecutable(Phar::TAR);
var_dump($phar->isTar());
var_dump($phar->getStub());
$phar['a'] = 'hi there';
-$phar = $phar->compress(Phar::GZ)->convertToPhar();
+$phar = $phar->convertToExecutable(Phar::PHAR, Phar::GZ);
var_dump($phar->isPhar());
var_dump($phar->isCompressed());
var_dump(strlen($phar->getStub()));
diff --git a/ext/phar/tests/tar/phar_convert_phar3.phpt b/ext/phar/tests/tar/phar_convert_phar3.phpt
index af2552e31e..de2ccbe10f 100644
--- a/ext/phar/tests/tar/phar_convert_phar3.phpt
+++ b/ext/phar/tests/tar/phar_convert_phar3.phpt
@@ -17,13 +17,13 @@ $phar->stopBuffering();
var_dump($phar->isTar());
var_dump(strlen($phar->getStub()));
-$phar = $phar->convertToTar();
+$phar = $phar->convertToExecutable(Phar::TAR);
var_dump($phar->isTar());
var_dump($phar->getStub());
$phar['a'] = 'hi there';
-$phar = $phar->compress(Phar::BZ2)->convertToPhar();
+$phar = $phar->convertToExecutable(Phar::PHAR, Phar::BZ2);
var_dump($phar->isPhar());
var_dump($phar->isCompressed());
var_dump(strlen($phar->getStub()));
diff --git a/ext/phar/tests/tar/tar_makebz2.phpt b/ext/phar/tests/tar/tar_makebz2.phpt
index 90379fa97a..f81675f8d8 100644
--- a/ext/phar/tests/tar/tar_makebz2.phpt
+++ b/ext/phar/tests/tar/tar_makebz2.phpt
@@ -16,7 +16,7 @@ $fname3 = dirname(__FILE__) . '/tar_makebz2_b.phar.tar.bz2';
$phar = new Phar($fname);
$phar['test'] = 'hi';
var_dump($phar->isTar());
-$phar = $phar->compress(Phar::BZ2);
+$phar = $phar->convertToExecutable(Phar::TAR, Phar::BZ2);
copy($fname2, $fname3);
diff --git a/ext/phar/tests/tar/tar_makegz.phpt b/ext/phar/tests/tar/tar_makegz.phpt
index 805330e4c2..54fd1e4b33 100644
--- a/ext/phar/tests/tar/tar_makegz.phpt
+++ b/ext/phar/tests/tar/tar_makegz.phpt
@@ -16,7 +16,8 @@ $fname3 = dirname(__FILE__) . '/tar_makegz_b.phar.tar.gz';
$phar = new Phar($fname);
$phar['test'] = 'hi';
var_dump($phar->isTar());
-$phar = $phar->compress(Phar::GZ);
+$phar = $phar->convertToExecutable(Phar::TAR, Phar::GZ);
+
copy($fname2, $fname3);
diff --git a/ext/phar/tests/zip/phar_convert_phar.phpt b/ext/phar/tests/zip/phar_convert_phar.phpt
index 70ba863a69..aa29cbb82d 100644
--- a/ext/phar/tests/zip/phar_convert_phar.phpt
+++ b/ext/phar/tests/zip/phar_convert_phar.phpt
@@ -17,13 +17,13 @@ $phar->stopBuffering();
var_dump($phar->isZip());
var_dump(strlen($phar->getStub()));
-$phar = $phar->convertToZip();
+$phar = $phar->convertToExecutable(Phar::ZIP);
var_dump($phar->isZip());
var_dump($phar->getStub());
$phar['a'] = 'hi there';
-$phar = $phar->convertToPhar('.3.phar');
+$phar = $phar->convertToExecutable(Phar::PHAR, Phar::NONE, '.3.phar');
var_dump($phar->isPhar());
var_dump(strlen($phar->getStub()));