mirror of
https://github.com/php/php-src.git
synced 2024-10-20 07:53:58 +00:00
37c684ab3d
eliminating phar's interception of zend_compile in favor of a new to-be-added hook in PHP 5.3+, allow "include 'phar:///path/to/my.phar';" to work as equivalent to php /path/to/my.phar this slight change in scripting still allows inclusion and execution of phar stub, but removes the need to check and modify path in zend_compile, which allows us to play much nicer with external tools like debuggers/opcode caches
60 lines
1.4 KiB
PHP
60 lines
1.4 KiB
PHP
--TEST--
|
|
Phar: tar-based phar, bzipped tar
|
|
--SKIPIF--
|
|
<?php if (!extension_loaded('phar')) die('skip'); ?>
|
|
<?php if (!extension_loaded("spl")) die("skip SPL not available"); ?>
|
|
<?php if (!extension_loaded("bz2")) die("skip bz2 not available"); ?>
|
|
--INI--
|
|
phar.readonly=0
|
|
phar.require_hash=0
|
|
--FILE--
|
|
<?php
|
|
include dirname(__FILE__) . '/files/tarmaker.php.inc';
|
|
|
|
$fname = dirname(__FILE__) . '/tar_bz2.phar';
|
|
$alias = 'phar://' . $fname;
|
|
$fname2 = dirname(__FILE__) . '/tar_bz2.phar.tar';
|
|
$alias2 = 'phar://' . $fname2;
|
|
|
|
$tar = new tarmaker($fname, 'bz2');
|
|
$tar->init();
|
|
$tar->addFile('tar_004.php', '<?php var_dump(__FILE__);');
|
|
$tar->addFile('internal/file/here', "hi there!\n");
|
|
$tar->mkDir('internal/dir');
|
|
$tar->mkDir('dir');
|
|
$tar->addFile('.phar/stub.php', '<?php
|
|
var_dump(__FILE__);
|
|
var_dump(substr(__FILE__, 0, 4) != "phar");
|
|
Phar::mapPhar();
|
|
var_dump("it worked");
|
|
include "phar://" . __FILE__ . "/tar_004.php";
|
|
__HALT_COMPILER();
|
|
');
|
|
$tar->close();
|
|
|
|
include $alias;
|
|
|
|
$phar = new Phar($fname);
|
|
$phar['test'] = 'hi';
|
|
|
|
copy($fname, $fname2);
|
|
|
|
$phar2 = new Phar($fname2);
|
|
var_dump($phar2->isFileFormat(Phar::TAR));
|
|
var_dump($phar2->isCompressed() == Phar::BZ2);
|
|
|
|
?>
|
|
===DONE===
|
|
--CLEAN--
|
|
<?php
|
|
@unlink(dirname(__FILE__) . '/tar_bz2.phar');
|
|
@unlink(dirname(__FILE__) . '/tar_bz2.phar.tar');
|
|
?>
|
|
--EXPECTF--
|
|
string(%d) "%star_bz2.phar"
|
|
bool(true)
|
|
string(9) "it worked"
|
|
string(%d) "phar://%star_bz2.phar/tar_004.php"
|
|
bool(true)
|
|
bool(true)
|
|
===DONE===
|