public function __construct(array $options = [])
{
if (isset($options['compress_types']) && is_array($options['compress_types'])) {
$this->compressTypes = array_map(function ($type) {
return (string) $type;
}, $options['compress_types']);
}
$this->compressionEnabled = isset($options['disable_compression']) ? !$options['disable_compression'] : extension_loaded('zlib');
$this->compressionLevel = isset($options['compression_level']) ? (int) $options['compression_level'] : ZlibEncoder::DEFAULT_LEVEL;
$this->hwm = isset($options['hwm']) ? (int) $options['hwm'] : self::DEFAULT_STREAM_HWM;
$this->maxBodyLength = isset($options['max_length']) ? $options['max_length'] : self::DEFAULT_MAX_COMP_LENGTH;
$this->keepAliveTimeout = isset($options['keep_alive_timeout']) ? (int) $options['keep_alive_timeout'] : self::DEFAULT_KEEP_ALIVE_TIMEOUT;
$this->keepAliveMax = isset($options['keep_alive_max']) ? (int) $options['keep_alive_max'] : self::DEFAULT_KEEP_ALIVE_MAX;
}