minCompressionSize; } /** * @throws DecompressionException */ public function decompress(string $payload) : string{ $result = @zlib_decode($payload, $this->maxDecompressionSize); if($result === false){ throw new DecompressionException("Failed to decompress data"); } return $result; } public function compress(string $payload) : string{ $compressible = $this->minCompressionSize !== null && strlen($payload) >= $this->minCompressionSize; $level = $compressible ? $this->level : 0; return function_exists('libdeflate_deflate_compress') ? libdeflate_deflate_compress($payload, $level) : Utils::assumeNotFalse(zlib_encode($payload, ZLIB_ENCODING_RAW, $level), "ZLIB compression failed"); } }