mirror of
https://github.com/Ne-Lexa/php-zip.git
synced 2025-08-01 13:10:09 +02:00
Merge tag '3.2.2' into develop
Tagging hotfix 3.2.2 3.2.2 # Conflicts: # .travis.yml # tests/ZipFileTest.php
This commit is contained in:
@@ -4,6 +4,7 @@ namespace PhpZip\Model\Data;
|
|||||||
|
|
||||||
use PhpZip\Exception\ZipException;
|
use PhpZip\Exception\ZipException;
|
||||||
use PhpZip\Model\ZipData;
|
use PhpZip\Model\ZipData;
|
||||||
|
use PhpZip\Model\ZipEntry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class ZipFileData.
|
* Class ZipFileData.
|
||||||
@@ -16,11 +17,12 @@ class ZipFileData implements ZipData
|
|||||||
/**
|
/**
|
||||||
* ZipStringData constructor.
|
* ZipStringData constructor.
|
||||||
*
|
*
|
||||||
|
* @param ZipEntry $zipEntry
|
||||||
* @param \SplFileInfo $fileInfo
|
* @param \SplFileInfo $fileInfo
|
||||||
*
|
*
|
||||||
* @throws ZipException
|
* @throws ZipException
|
||||||
*/
|
*/
|
||||||
public function __construct(\SplFileInfo $fileInfo)
|
public function __construct(ZipEntry $zipEntry, \SplFileInfo $fileInfo)
|
||||||
{
|
{
|
||||||
if (!$fileInfo->isFile()) {
|
if (!$fileInfo->isFile()) {
|
||||||
throw new ZipException('$fileInfo is not a file.');
|
throw new ZipException('$fileInfo is not a file.');
|
||||||
@@ -31,6 +33,7 @@ class ZipFileData implements ZipData
|
|||||||
}
|
}
|
||||||
|
|
||||||
$this->file = $fileInfo;
|
$this->file = $fileInfo;
|
||||||
|
$zipEntry->setUncompressedSize($fileInfo->getSize());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -711,10 +711,9 @@ class ZipFile implements ZipFileInterface
|
|||||||
ZipCompressionMethod::DEFLATED;
|
ZipCompressionMethod::DEFLATED;
|
||||||
}
|
}
|
||||||
|
|
||||||
$zipEntry->setUncompressedSize($file->getSize());
|
|
||||||
$zipEntry->setCompressionMethod($compressionMethod);
|
$zipEntry->setCompressionMethod($compressionMethod);
|
||||||
|
|
||||||
$zipData = new ZipFileData($file);
|
$zipData = new ZipFileData($zipEntry, $file);
|
||||||
} elseif ($file->isDir()) {
|
} elseif ($file->isDir()) {
|
||||||
$zipEntry->setCompressionMethod(ZipCompressionMethod::STORED);
|
$zipEntry->setCompressionMethod(ZipCompressionMethod::STORED);
|
||||||
$zipEntry->setUncompressedSize(0);
|
$zipEntry->setUncompressedSize(0);
|
||||||
|
@@ -1571,9 +1571,10 @@ class ZipEntryTest extends TestCase
|
|||||||
public function testClone()
|
public function testClone()
|
||||||
{
|
{
|
||||||
$newUnixExtra = new NewUnixExtraField();
|
$newUnixExtra = new NewUnixExtraField();
|
||||||
$zipData = new ZipFileData(new \SplFileInfo(__FILE__));
|
|
||||||
|
|
||||||
$zipEntry = new ZipEntry('entry');
|
$zipEntry = new ZipEntry('entry');
|
||||||
|
$zipData = new ZipFileData($zipEntry, new \SplFileInfo(__FILE__));
|
||||||
|
|
||||||
$zipEntry->addExtraField($newUnixExtra);
|
$zipEntry->addExtraField($newUnixExtra);
|
||||||
$zipEntry->setData($zipData);
|
$zipEntry->setData($zipData);
|
||||||
|
|
||||||
|
@@ -10,6 +10,7 @@ use PhpZip\Exception\InvalidArgumentException;
|
|||||||
use PhpZip\Exception\ZipEntryNotFoundException;
|
use PhpZip\Exception\ZipEntryNotFoundException;
|
||||||
use PhpZip\Exception\ZipException;
|
use PhpZip\Exception\ZipException;
|
||||||
use PhpZip\Exception\ZipUnsupportMethodException;
|
use PhpZip\Exception\ZipUnsupportMethodException;
|
||||||
|
use PhpZip\Model\Data\ZipFileData;
|
||||||
use PhpZip\Model\ZipEntry;
|
use PhpZip\Model\ZipEntry;
|
||||||
use PhpZip\Model\ZipInfo;
|
use PhpZip\Model\ZipInfo;
|
||||||
use PhpZip\Util\FilesUtil;
|
use PhpZip\Util\FilesUtil;
|
||||||
@@ -2459,6 +2460,10 @@ class ZipFileTest extends ZipTestCase
|
|||||||
$zipFile->close();
|
$zipFile->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws ZipEntryNotFoundException
|
||||||
|
* @throws ZipException
|
||||||
|
*/
|
||||||
public function testNoData()
|
public function testNoData()
|
||||||
{
|
{
|
||||||
$this->setExpectedException(ZipException::class, 'No data for zip entry file');
|
$this->setExpectedException(ZipException::class, 'No data for zip entry file');
|
||||||
@@ -2476,4 +2481,34 @@ class ZipFileTest extends ZipTestCase
|
|||||||
$zipFile->close();
|
$zipFile->close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws ZipEntryNotFoundException
|
||||||
|
* @throws ZipException
|
||||||
|
*/
|
||||||
|
public function testReplaceEntryContentsByFile()
|
||||||
|
{
|
||||||
|
$entryName = basename(__FILE__);
|
||||||
|
|
||||||
|
$zipFile = new ZipFile();
|
||||||
|
$zipFile[$entryName] = 'contents';
|
||||||
|
$zipFile->saveAsFile($this->outputFilename);
|
||||||
|
$zipFile->close();
|
||||||
|
|
||||||
|
$zipFile->openFile($this->outputFilename);
|
||||||
|
$entry = $zipFile->getEntry($entryName);
|
||||||
|
$data = new ZipFileData($entry, new \SplFileInfo(__FILE__));
|
||||||
|
$entry->setData($data);
|
||||||
|
$zipFile->saveAsFile($this->outputFilename);
|
||||||
|
$zipFile->close();
|
||||||
|
|
||||||
|
self::assertCorrectZipArchive($this->outputFilename);
|
||||||
|
|
||||||
|
$zipFile->openFile($this->outputFilename);
|
||||||
|
static::assertSame(
|
||||||
|
$zipFile->getEntryContents($entryName),
|
||||||
|
file_get_contents(__FILE__)
|
||||||
|
);
|
||||||
|
$zipFile->close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user