@Greg: We need to clarify conversion policy across the board.
phar.readonly=0
--FILE--
<?php
+
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
$pname = 'phar://' . $fname;
$fname2 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.2.phar.php';
include 'files/phar_test.inc';
$phar = new Phar($fname);
+var_dump($phar->isTar());
+var_dump($phar->getStub());
+
$phar->convertToTar();
var_dump($phar->isTar());
+var_dump($phar->getStub());
+
copy($fname, $fname2);
$phar = new Phar($fname2);
var_dump($phar->isTar());
+var_dump($phar->getStub());
+
?>
===DONE===
--CLEAN--
__HALT_COMPILER();
?>
--EXPECT--
+bool(false)
+string(48) "<?php echo "first stub\n"; __HALT_COMPILER(); ?>"
bool(true)
+string(60) "<?php // tar-based phar archive stub file
+__HALT_COMPILER();"
bool(true)
+string(60) "<?php // tar-based phar archive stub file
+__HALT_COMPILER();"
===DONE===
phar.readonly=0
--FILE--
<?php
+
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
$pname = 'phar://' . $fname;
$fname2 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.2.phar.php';
include 'files/phar_test.inc';
$phar = new Phar($fname);
+var_dump($phar->isTar());
+var_dump($phar->isCompressed());
+var_dump($phar->getStub());
+
$phar->convertToTar(Phar::GZ);
var_dump($phar->isTar());
var_dump($phar->isCompressed());
+var_dump($phar->getStub());
+
copy($fname, $fname2);
$phar = new Phar($fname2);
var_dump($phar->isTar());
var_dump($phar->isCompressed() == Phar::GZ);
+var_dump($phar->getStub());
+
?>
===DONE===
--CLEAN--
__HALT_COMPILER();
?>
--EXPECT--
-bool(true)
bool(false)
+bool(false)
+string(48) "<?php echo "first stub\n"; __HALT_COMPILER(); ?>"
+bool(true)
+int(4096)
+string(60) "<?php // tar-based phar archive stub file
+__HALT_COMPILER();"
bool(true)
bool(true)
+string(60) "<?php // tar-based phar archive stub file
+__HALT_COMPILER();"
===DONE===
--TEST--
-Phar::convertToTar() bzipped
+Phar::convertToTar() gzipped
--SKIPIF--
<?php if (!extension_loaded("phar")) die("skip"); ?>
-<?php if (!extension_loaded("bz2")) die("skip"); ?>
+<?php if (!extension_loaded("zlib")) die("skip"); ?>
--INI--
phar.require_hash=0
phar.readonly=0
--FILE--
<?php
+
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
$pname = 'phar://' . $fname;
$fname2 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.2.phar.php';
include 'files/phar_test.inc';
$phar = new Phar($fname);
+var_dump($phar->isTar());
+var_dump($phar->isCompressed());
+var_dump($phar->getStub());
+
$phar->convertToTar(Phar::BZ2);
var_dump($phar->isTar());
var_dump($phar->isCompressed());
+var_dump($phar->getStub());
+
copy($fname, $fname2);
$phar = new Phar($fname2);
var_dump($phar->isTar());
var_dump($phar->isCompressed() == Phar::BZ2);
+var_dump($phar->getStub());
+
?>
===DONE===
--CLEAN--
__HALT_COMPILER();
?>
--EXPECT--
-bool(true)
bool(false)
+bool(false)
+string(48) "<?php echo "first stub\n"; __HALT_COMPILER(); ?>"
+bool(true)
+int(8192)
+string(60) "<?php // tar-based phar archive stub file
+__HALT_COMPILER();"
bool(true)
bool(true)
+string(60) "<?php // tar-based phar archive stub file
+__HALT_COMPILER();"
===DONE===
phar.readonly=0
--FILE--
<?php
+
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
$pname = 'phar://' . $fname;
$fname2 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.2.phar.php';
include 'files/phar_test.inc';
$phar = new Phar($fname);
+var_dump($phar->isZip());
+var_dump($phar->getStub());
+
$phar->convertToZip();
var_dump($phar->isZip());
+var_dump($phar->getStub());
+
copy($fname, $fname2);
$phar = new Phar($fname2);
var_dump($phar->isZip());
+var_dump($phar->getStub());
+
?>
===DONE===
--CLEAN--
__HALT_COMPILER();
?>
--EXPECT--
+bool(false)
+string(48) "<?php echo "first stub\n"; __HALT_COMPILER(); ?>"
bool(true)
+string(60) "<?php // zip-based phar archive stub file
+__HALT_COMPILER();"
bool(true)
+string(60) "<?php // zip-based phar archive stub file
+__HALT_COMPILER();"
===DONE===
phar.readonly=0
--FILE--
<?php
+
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
$pname = 'phar://' . $fname;
$fname2 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.2.phar.php';
$pname2 = 'phar://' . $fname;
$phar = new Phar($fname);
+$phar->stopBuffering();
+var_dump($phar->isTar());
+var_dump(strlen($phar->getStub()));
+
$phar->convertToTar();
var_dump($phar->isTar());
+var_dump($phar->getStub());
+
$phar['a'] = 'hi there';
+
$phar->convertToPhar();
var_dump($phar->isPhar());
+var_dump(strlen($phar->getStub()));
+
copy($fname, $fname2);
$phar = new Phar($fname2);
var_dump($phar->isPhar());
+var_dump(strlen($phar->getStub()));
+
?>
===DONE===
--CLEAN--
__HALT_COMPILER();
?>
--EXPECT--
+bool(false)
+int(6571)
bool(true)
+string(60) "<?php // tar-based phar archive stub file
+__HALT_COMPILER();"
bool(true)
+int(6571)
bool(true)
+int(6571)
===DONE===
phar.readonly=0
--FILE--
<?php
+
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
$pname = 'phar://' . $fname;
$fname2 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.2.phar.php';
$pname2 = 'phar://' . $fname;
$phar = new Phar($fname);
+$phar->stopBuffering();
+var_dump($phar->isTar());
+var_dump(strlen($phar->getStub()));
+
$phar->convertToTar();
var_dump($phar->isTar());
+var_dump($phar->getStub());
+
$phar['a'] = 'hi there';
-$phar = new Phar($fname);
+
$phar->convertToPhar(Phar::GZ);
var_dump($phar->isPhar());
var_dump($phar->isCompressed());
+var_dump(strlen($phar->getStub()));
+
copy($fname, $fname2);
$phar = new Phar($fname2);
var_dump($phar->isPhar());
var_dump($phar->isCompressed() == Phar::GZ);
+var_dump(strlen($phar->getStub()));
+
?>
===DONE===
--CLEAN--
__HALT_COMPILER();
?>
--EXPECT--
+bool(false)
+int(6571)
bool(true)
+string(60) "<?php // tar-based phar archive stub file
+__HALT_COMPILER();"
bool(true)
-bool(false)
+int(4096)
+int(6571)
bool(true)
bool(true)
+int(6571)
===DONE===
phar.readonly=0
--FILE--
<?php
+
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
$pname = 'phar://' . $fname;
$fname2 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.2.phar.php';
$pname2 = 'phar://' . $fname;
$phar = new Phar($fname);
+$phar->stopBuffering();
+var_dump($phar->isTar());
+var_dump(strlen($phar->getStub()));
+
$phar->convertToTar();
var_dump($phar->isTar());
+var_dump($phar->getStub());
+
$phar['a'] = 'hi there';
-$phar = new Phar($fname);
+
$phar->convertToPhar(Phar::BZ2);
var_dump($phar->isPhar());
var_dump($phar->isCompressed());
+var_dump(strlen($phar->getStub()));
+
copy($fname, $fname2);
$phar = new Phar($fname2);
var_dump($phar->isPhar());
var_dump($phar->isCompressed() == Phar::BZ2);
+var_dump(strlen($phar->getStub()));
+
?>
===DONE===
--CLEAN--
__HALT_COMPILER();
?>
--EXPECT--
+bool(false)
+int(6571)
bool(true)
+string(60) "<?php // tar-based phar archive stub file
+__HALT_COMPILER();"
bool(true)
-bool(false)
+int(8192)
+int(6571)
bool(true)
bool(true)
+int(6571)
===DONE===
phar.readonly=0
--FILE--
<?php
+
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
$pname = 'phar://' . $fname;
$fname2 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.2.phar.php';
$pname2 = 'phar://' . $fname;
$phar = new Phar($fname);
+$phar->stopBuffering();
+var_dump($phar->isZip());
+var_dump(strlen($phar->getStub()));
+
$phar->convertToZip();
var_dump($phar->isZip());
+var_dump($phar->getStub());
+
$phar['a'] = 'hi there';
+
$phar->convertToPhar();
var_dump($phar->isPhar());
+var_dump(strlen($phar->getStub()));
+
copy($fname, $fname2);
$phar = new Phar($fname2);
var_dump($phar->isPhar());
+var_dump(strlen($phar->getStub()));
+
?>
===DONE===
--CLEAN--
__HALT_COMPILER();
?>
--EXPECT--
+bool(false)
+string(50) "<?php echo "first stub\n"; __HALT_COMPILER(); ?>
+"
bool(true)
+string(60) "<?php // zip-based phar archive stub file
+__HALT_COMPILER();"
bool(true)
+int(6571)
bool(true)
+int(6571)
===DONE===