null, 'clientConfig' => []]; $this->closureSerializer = isset($options['closureSerializer']) ? $options['closureSerializer'] : $this->getDefaultClosureSerializer(); $this->setWrappedClientConfig($options); } /** * @param array $options */ private function setWrappedClientConfig(array $options) { $config = isset($options['clientConfig']) ? $options['clientConfig'] : []; if ($config && $this->closureSerializer) { $this->closureSerializer->wrapClosures($config); } $this->clientConfig = $config; } /** * @return array */ private function getUnwrappedClientConfig() { if ($this->clientConfig && $this->closureSerializer) { $this->closureSerializer->unwrapClosures($this->clientConfig); } return $this->clientConfig; } /** * @return ClosureSerializerInterface|null */ private function getDefaultClosureSerializer() { if (class_exists(\DeliciousBrains\WP_Offload_Media\Gcp\Opis\Closure\SerializableClosure::class)) { return new \DeliciousBrains\WP_Offload_Media\Gcp\Google\Cloud\Core\Batch\OpisClosureSerializer(); } } }