Browse Source
implement Phar->getMetadata() Phar->setMetadata(), add tests, implement meta-data in the header
migration/RELEASE_1_0_0
implement Phar->getMetadata() Phar->setMetadata(), add tests, implement meta-data in the header
migration/RELEASE_1_0_0
11 changed files with 245 additions and 17 deletions
-
2ext/phar/TODO
-
2ext/phar/package.xml
-
65ext/phar/phar.c
-
3ext/phar/phar_internal.h
-
47ext/phar/phar_object.c
-
2ext/phar/tests/009.phpt
-
2ext/phar/tests/010.phpt
-
64ext/phar/tests/phar_metadata_read.phpt
-
69ext/phar/tests/phar_metadata_write.phpt
-
2ext/phar/tests/phar_oo_001.phpt
-
4ext/phar/tests/phar_test.inc
@ -0,0 +1,64 @@ |
|||
--TEST-- |
|||
Phar with phar-level meta-data (read) |
|||
--SKIPIF-- |
|||
<?php if (!extension_loaded("phar")) print "skip";?> |
|||
--INI-- |
|||
phar.require_hash=0 |
|||
--FILE-- |
|||
<?php |
|||
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php'; |
|||
$pname = 'phar://' . $fname; |
|||
$file = "<?php __HALT_COMPILER(); ?>"; |
|||
|
|||
$files = array(); |
|||
$pmeta = 'hi there'; |
|||
$files['a'] = array('cont' => 'a'); |
|||
$files['b'] = array('cont' => 'b'); |
|||
$files['c'] = array('cont' => 'c', 'meta' => array('hi', 'there')); |
|||
$files['d'] = array('cont' => 'd', 'meta' => array('hi'=>'there','foo'=>'bar')); |
|||
include 'phar_test.inc'; |
|||
|
|||
foreach($files as $name => $cont) { |
|||
var_dump(file_get_contents($pname.'/'.$name)); |
|||
} |
|||
|
|||
$phar = new Phar($fname); |
|||
var_dump($phar->getMetaData()); |
|||
foreach($files as $name => $cont) { |
|||
var_dump($phar[$name]->getMetadata()); |
|||
} |
|||
|
|||
unset($phar); |
|||
|
|||
foreach($files as $name => $cont) { |
|||
var_dump(file_get_contents($pname.'/'.$name)); |
|||
} |
|||
?> |
|||
===DONE=== |
|||
--CLEAN-- |
|||
<?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?> |
|||
--EXPECT-- |
|||
string(1) "a" |
|||
string(1) "b" |
|||
string(1) "c" |
|||
string(1) "d" |
|||
string(8) "hi there" |
|||
NULL |
|||
NULL |
|||
array(2) { |
|||
[0]=> |
|||
string(2) "hi" |
|||
[1]=> |
|||
string(5) "there" |
|||
} |
|||
array(2) { |
|||
["hi"]=> |
|||
string(5) "there" |
|||
["foo"]=> |
|||
string(3) "bar" |
|||
} |
|||
string(1) "a" |
|||
string(1) "b" |
|||
string(1) "c" |
|||
string(1) "d" |
|||
===DONE=== |
|||
@ -0,0 +1,69 @@ |
|||
--TEST-- |
|||
Phar with phar meta-data (write) |
|||
--SKIPIF-- |
|||
<?php if (!extension_loaded("phar")) print "skip";?> |
|||
--INI-- |
|||
phar.require_hash=0 |
|||
--FILE-- |
|||
<?php |
|||
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php'; |
|||
$pname = 'phar://' . $fname; |
|||
$file = "<?php __HALT_COMPILER(); ?>"; |
|||
|
|||
$files = array(); |
|||
$files['a'] = array('cont' => 'a'); |
|||
$files['b'] = array('cont' => 'b', 'meta' => 'hi there'); |
|||
$files['c'] = array('cont' => 'c', 'meta' => array('hi', 'there')); |
|||
$files['d'] = array('cont' => 'd', 'meta' => array('hi'=>'there','foo'=>'bar')); |
|||
include 'phar_test.inc'; |
|||
|
|||
foreach($files as $name => $cont) { |
|||
var_dump(file_get_contents($pname.'/'.$name)); |
|||
} |
|||
|
|||
$phar = new Phar($fname); |
|||
var_dump($phar->getMetadata()); |
|||
$phar->setMetadata(array('my' => 'friend')); |
|||
var_dump($phar->getMetadata()); |
|||
$phar['a']->setMetadata(42); |
|||
$phar['b']->setMetadata(NULL); |
|||
$phar['c']->setMetadata(array(25, 'foo'=>'bar')); |
|||
$phar['d']->setMetadata(true); |
|||
|
|||
foreach($files as $name => $cont) { |
|||
var_dump($phar[$name]->getMetadata()); |
|||
} |
|||
|
|||
unset($phar); |
|||
|
|||
foreach($files as $name => $cont) { |
|||
var_dump(file_get_contents($pname.'/'.$name)); |
|||
} |
|||
?> |
|||
===DONE=== |
|||
--CLEAN-- |
|||
<?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?> |
|||
--EXPECT-- |
|||
string(1) "a" |
|||
string(1) "b" |
|||
string(1) "c" |
|||
string(1) "d" |
|||
NULL |
|||
array(1) { |
|||
["my"]=> |
|||
string(6) "friend" |
|||
} |
|||
int(42) |
|||
NULL |
|||
array(2) { |
|||
[0]=> |
|||
int(25) |
|||
["foo"]=> |
|||
string(3) "bar" |
|||
} |
|||
bool(true) |
|||
string(1) "a" |
|||
string(1) "b" |
|||
string(1) "c" |
|||
string(1) "d" |
|||
===DONE=== |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue