for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace PhpZip\Model\Entry;
use PhpZip\Exception\InvalidArgumentException;
/**
* @author Ne-Lexa [email protected]
* @license MIT
*/
class ZipNewEntry extends ZipAbstractEntry
{
/** @var resource|string|null */
protected $content;
/** @var bool */
private $clone = false;
* ZipNewEntry constructor.
*
* @param string|resource|null $content
public function __construct($content = null)
parent::__construct();
if ($content !== null && !\is_string($content) && !\is_resource($content)) {
throw new InvalidArgumentException('invalid content');
}
$this->content = $content;
* Returns an string content of the given entry.
* @return string|null
public function getEntryContent()
if (\is_resource($this->content)) {
if (stream_get_meta_data($this->content)['seekable']) {
rewind($this->content);
return stream_get_contents($this->content);
return $this->content;
* Clone extra fields.
public function __clone()
$this->clone = true;
parent::__clone();
public function __destruct()
if (!$this->clone && $this->content !== null && \is_resource($this->content)) {
fclose($this->content);
$this->content = null;