phar_metadata_write2.phpt 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. --TEST--
  2. Phar with object in metadata
  3. --EXTENSIONS--
  4. phar
  5. --INI--
  6. phar.require_hash=0
  7. phar.readonly=0
  8. --FILE--
  9. <?php
  10. $fname = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar.php';
  11. $pname = 'phar://' . $fname;
  12. $file = "<?php __HALT_COMPILER(); ?>";
  13. $files = array();
  14. $files['a'] = array('cont' => 'a');
  15. include 'files/phar_test.inc';
  16. foreach($files as $name => $cont) {
  17. var_dump(file_get_contents($pname.'/'.$name));
  18. }
  19. $phar = new Phar($fname);
  20. var_dump($phar->getMetadata());
  21. $phar->setMetadata((object) ['my' => 'friend']);
  22. unset($phar);
  23. // NOTE: Phar will use the cached value of metadata if setMetaData was called on that Phar path before.
  24. // Save the writes to the phar and use a different file path.
  25. $fname_new = "$fname.copy.php";
  26. copy($fname, $fname_new);
  27. $phar = new Phar($fname_new);
  28. var_dump($phar->getMetadata());
  29. ?>
  30. --CLEAN--
  31. <?php
  32. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
  33. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.php.copy.php');
  34. ?>
  35. --EXPECT--
  36. string(1) "a"
  37. NULL
  38. object(stdClass)#2 (1) {
  39. ["my"]=>
  40. string(6) "friend"
  41. }