Annotation of embedaddon/php/ext/phar/tests/zip/files/zipmaker.php.inc, revision 1.1
1.1 ! misho 1: <?php
! 2: // stolen from PEAR2_Pyrus_Developer_Creator_Zip by Greg Beaver, the original author, for use in unit tests
! 3: class zipmaker
! 4: {
! 5: /**
! 6: * Path to archive file
! 7: *
! 8: * @var string
! 9: */
! 10: protected $archive;
! 11: /**
! 12: * @var ZIPArchive
! 13: */
! 14: protected $zip;
! 15: protected $path;
! 16: function __construct($path)
! 17: {
! 18: if (!class_exists('ZIPArchive')) {
! 19: throw new Exception(
! 20: 'Zip extension is not available');
! 21: }
! 22: $this->path = $path;
! 23: }
! 24:
! 25: /**
! 26: * save a file inside this package
! 27: * @param string relative path within the package
! 28: * @param string|resource file contents or open file handle
! 29: */
! 30: function addFile($path, $fileOrStream)
! 31: {
! 32: if (is_resource($fileOrStream)) {
! 33: $this->zip->addFromString($path, stream_get_contents($fileOrStream));
! 34: } else {
! 35: $this->zip->addFromString($path, $fileOrStream);
! 36: }
! 37: }
! 38:
! 39: /**
! 40: * Initialize the package creator
! 41: */
! 42: function init()
! 43: {
! 44: $this->zip = new ZipArchive;
! 45: if (true !== $this->zip->open($this->path, ZIPARCHIVE::CREATE)) {
! 46: throw new Exception(
! 47: 'Cannot open ZIP archive ' . $this->path
! 48: );
! 49: }
! 50: }
! 51:
! 52: /**
! 53: * Create an internal directory, creating parent directories as needed
! 54: *
! 55: * This is a no-op for the tar creator
! 56: * @param string $dir
! 57: */
! 58: function mkdir($dir)
! 59: {
! 60: $this->zip->addEmptyDir($dir);
! 61: }
! 62:
! 63: /**
! 64: * Finish saving the package
! 65: */
! 66: function close()
! 67: {
! 68: $this->zip->close();
! 69: }
! 70: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>