<?php
|
|
namespace PhpZip\Model;
|
|
/**
|
* Class ImmutableZipContainer.
|
*/
|
class ImmutableZipContainer implements \Countable
|
{
|
/** @var ZipEntry[] */
|
protected $entries;
|
|
/** @var string|null Archive comment */
|
protected $archiveComment;
|
|
/**
|
* ZipContainer constructor.
|
*
|
* @param ZipEntry[] $entries
|
* @param string|null $archiveComment
|
*/
|
public function __construct(array $entries, $archiveComment)
|
{
|
$this->entries = $entries;
|
$this->archiveComment = $archiveComment;
|
}
|
|
/**
|
* @return ZipEntry[]
|
*/
|
public function &getEntries()
|
{
|
return $this->entries;
|
}
|
|
/**
|
* @return string|null
|
*/
|
public function getArchiveComment()
|
{
|
return $this->archiveComment;
|
}
|
|
/**
|
* Count elements of an object.
|
*
|
* @see https://php.net/manual/en/countable.count.php
|
*
|
* @return int The custom count as an integer.
|
* The return value is cast to an integer.
|
*/
|
public function count()
|
{
|
return \count($this->entries);
|
}
|
|
/**
|
* When an object is cloned, PHP 5 will perform a shallow copy of all of the object's properties.
|
* Any properties that are references to other variables, will remain references.
|
* Once the cloning is complete, if a __clone() method is defined,
|
* then the newly created object's __clone() method will be called, to allow any necessary properties that need to
|
* be changed. NOT CALLABLE DIRECTLY.
|
*
|
* @see https://php.net/manual/en/language.oop5.cloning.php
|
*/
|
public function __clone()
|
{
|
foreach ($this->entries as $key => $value) {
|
$this->entries[$key] = clone $value;
|
}
|
}
|
}
|