diff --git a/composer/installed.json b/composer/installed.json index ab30bc8dc..6909733e2 100644 --- a/composer/installed.json +++ b/composer/installed.json @@ -433,6 +433,12 @@ "issues": "https://github.com/DeepDiver1975/PHPZipStreamer/issues", "source": "https://github.com/DeepDiver1975/PHPZipStreamer/tree/master" }, + "funding": [ + { + "url": "https://github.com/DeepDiver1975", + "type": "github" + } + ], "install-path": "../deepdiver/zipstreamer" }, { diff --git a/deepdiver/zipstreamer/src/Count64.php b/deepdiver/zipstreamer/src/Count64.php index a7a0fef1d..80cc3d5de 100644 --- a/deepdiver/zipstreamer/src/Count64.php +++ b/deepdiver/zipstreamer/src/Count64.php @@ -22,8 +22,9 @@ */ namespace ZipStreamer; -use \ZipStreamer\Lib\Count64_32; -use \ZipStreamer\Lib\Count64_64; +use ZipStreamer\Lib\Count64_32; +use ZipStreamer\Lib\Count64_64; +use ZipStreamer\Lib\Count64Base; const INT64_HIGH_MAP = 0xffffffff00000000; const INT64_LOW_MAP = 0x00000000ffffffff; @@ -43,16 +44,6 @@ function urShift($bits, $shift) { return ($bits >> $shift) & ~(1 << (8 * PHP_INT_SIZE - 1) >> ($shift - 1)); } -/** - * Convert binary data string to readable hex string - * - * @param string $data binary string - * @return string readable hex string - */ -function byte2hex($data) { - return unpack("h*", $data); -} - /** * Pack 1 byte data into binary string * @@ -149,8 +140,8 @@ abstract class Count64 { public static function construct($value = 0, $limit32Bit = False) { if (4 == PHP_INT_SIZE) { return new Count64_32($value, $limit32Bit); - } else { - return new Count64_64($value, $limit32Bit); } + + return new Count64_64($value, $limit32Bit); } } diff --git a/deepdiver/zipstreamer/src/Lib/Count64Base.php b/deepdiver/zipstreamer/src/Lib/Count64Base.php index 7ae5dcd69..a97a047fa 100644 --- a/deepdiver/zipstreamer/src/Lib/Count64Base.php +++ b/deepdiver/zipstreamer/src/Lib/Count64Base.php @@ -25,7 +25,7 @@ abstract class Count64Base { protected $limit32Bit = False; - function __construct($value = 0, $limit32Bit = False) { + public function __construct($value = 0, $limit32Bit = False) { $this->limit32Bit = $limit32Bit; $this->set($value); } diff --git a/deepdiver/zipstreamer/src/Lib/Count64_32.php b/deepdiver/zipstreamer/src/Lib/Count64_32.php index e8c7ceb85..800577443 100644 --- a/deepdiver/zipstreamer/src/Lib/Count64_32.php +++ b/deepdiver/zipstreamer/src/Lib/Count64_32.php @@ -42,7 +42,7 @@ public function set($value) { if (is_int($value)) { $this->loBytes = $value; $this->hiBytes = 0; - } else if (is_array($value) && 2 == sizeof($value)) { + } else if (is_array($value) && 2 == count($value)) { $this->loBytes = $value[0]; if ($this->limit32Bit && 0 !== $value[1]) { throw new \OverflowException(self::EXCEPTION_32BIT_OVERFLOW); diff --git a/deepdiver/zipstreamer/src/Lib/Count64_64.php b/deepdiver/zipstreamer/src/Lib/Count64_64.php index 1a31741ca..e27021a26 100644 --- a/deepdiver/zipstreamer/src/Lib/Count64_64.php +++ b/deepdiver/zipstreamer/src/Lib/Count64_64.php @@ -22,8 +22,9 @@ */ namespace ZipStreamer\Lib; -use const \ZipStreamer\INT64_LOW_MAP; -use const \ZipStreamer\INT_MAX_32; +use function ZipStreamer\urShift; +use const ZipStreamer\INT64_LOW_MAP; +use const ZipStreamer\INT_MAX_32; class Count64_64 extends Count64Base { private $value; @@ -46,7 +47,7 @@ public function set($value) { throw new \OverFlowException(self::EXCEPTION_32BIT_OVERFLOW); } $this->value = $value; - } else if (is_array($value) && 2 == sizeof($value)) { + } else if (is_array($value) && 2 == count($value)) { if ($this->limit32Bit && 0 !== $value[1]) { throw new \OverFlowException(self::EXCEPTION_32BIT_OVERFLOW); } diff --git a/deepdiver/zipstreamer/src/ZipStreamer.php b/deepdiver/zipstreamer/src/ZipStreamer.php index 4542c3fa9..a2f158155 100644 --- a/deepdiver/zipstreamer/src/ZipStreamer.php +++ b/deepdiver/zipstreamer/src/ZipStreamer.php @@ -48,7 +48,7 @@ class ZipStreamer { private $extFileAttrFile; private $extFileAttrDir; - /** @var stream output stream zip file is written to */ + /** @var resource $outStream output stream zip file is written to */ private $outStream; /** @var boolean zip64 enabled */ private $zip64 = True; @@ -356,7 +356,7 @@ private function streamFileData($stream, $compress, $level) { $compStream = DeflateStream::create($level); } - while (!feof($stream) && $data = fread($stream, self::STREAM_CHUNK_SIZE)) { + while (!feof($stream) && ($data = fread($stream, self::STREAM_CHUNK_SIZE)) !== false) { $dataLength->add(strlen($data)); hash_update($hashCtx, $data); if (COMPR::DEFLATE === $compress) { @@ -438,7 +438,7 @@ private function addDataDescriptor($dataLength, $gzLength, $dataCRC32) { private function buildZip64EndOfCentralDirectoryRecord($cdRecLength) { $versionToExtract = $this->getVersionToExtract(False); - $cdRecCount = sizeof($this->cdRec); + $cdRecCount = count($this->cdRec); return '' . pack32le(self::ZIP64_END_OF_CENTRAL_DIRECTORY) // zip64 end of central dir signature 4 bytes (0x06064b50) @@ -517,12 +517,12 @@ private function buildCentralDirectoryHeader($filePath, $timestamp, $gpFlags, private function buildEndOfCentralDirectoryRecord($cdRecLength) { if ($this->zip64) { $diskNumber = -1; - $cdRecCount = min(sizeof($this->cdRec), 0xffff); + $cdRecCount = min(count($this->cdRec), 0xffff); $cdRecLength = -1; $offset = -1; } else { $diskNumber = 0; - $cdRecCount = sizeof($this->cdRec); + $cdRecCount = count($this->cdRec); $offset = $this->offset->getLoBytes(); } //throw new \Exception(sprintf("zip64 %d diskno %d", $this->zip64, $diskNumber)); @@ -646,7 +646,7 @@ protected function __construct($level) { $class = self::PECL2_DEFLATE_STREAM_CLASS; } if (!class_exists($class)) { - new \Exception('unable to instantiate PECL deflate stream (requires pecl_http >= 0.10)'); + throw new \Exception('unable to instantiate PECL deflate stream (requires pecl_http >= 0.10)'); } $deflateFlags = constant($class . '::TYPE_RAW'); @@ -723,8 +723,8 @@ class GPFLAGS { // compression settings for deflate/deflate64 const DEFL_NORM = 0x0000; // normal compression (COMP1 and COMP2 not set) - const DEFL_MAX = COMP1; // maximum compression - const DEFL_FAST = COMP2; // fast compression + const DEFL_MAX = self::COMP1; // maximum compression + const DEFL_FAST = self::COMP2; // fast compression const DEFL_SFAST = 0x0006; // superfast compression (COMP1 and COMP2 set) }