clearingFactor = $this->normalizeFactor($clearingFactor); return $this; } /** * Get automatic clearing factor * * Used by: * - ClearExpiredByFactor * * @return int */ public function getClearingFactor() { return $this->clearingFactor; } /** * Set callback to call on intercepted exception * * Used by: * - ExceptionHandler * * @param callable $exceptionCallback * @throws Exception\InvalidArgumentException * @return PluginOptions */ public function setExceptionCallback($exceptionCallback) { if ($exceptionCallback !== null && !is_callable($exceptionCallback, true)) { throw new Exception\InvalidArgumentException('Not a valid callback'); } $this->exceptionCallback = $exceptionCallback; return $this; } /** * Get callback to call on intercepted exception * * Used by: * - ExceptionHandler * * @return null|callable */ public function getExceptionCallback() { return $this->exceptionCallback; } /** * Exit if connection aborted and ignore_user_abort is disabled. * * @param bool $exitOnAbort * @return PluginOptions */ public function setExitOnAbort($exitOnAbort) { $this->exitOnAbort = (bool) $exitOnAbort; return $this; } /** * Exit if connection aborted and ignore_user_abort is disabled. * * @return bool */ public function getExitOnAbort() { return $this->exitOnAbort; } /** * Set automatic optimizing factor * * Used by: * - OptimizeByFactor * * @param int $optimizingFactor * @return PluginOptions */ public function setOptimizingFactor($optimizingFactor) { $this->optimizingFactor = $this->normalizeFactor($optimizingFactor); return $this; } /** * Set automatic optimizing factor * * Used by: * - OptimizeByFactor * * @return int */ public function getOptimizingFactor() { return $this->optimizingFactor; } /** * Set serializer * * Used by: * - Serializer * * @param string|SerializerAdapter $serializer * @throws Exception\InvalidArgumentException * @return Serializer */ public function setSerializer($serializer) { if (!is_string($serializer) && !$serializer instanceof SerializerAdapter) { throw new Exception\InvalidArgumentException(sprintf( '%s expects either a string serializer name or Zend\Serializer\Adapter\AdapterInterface instance; ' . 'received "%s"', __METHOD__, (is_object($serializer) ? get_class($serializer) : gettype($serializer)) )); } $this->serializer = $serializer; return $this; } /** * Get serializer * * Used by: * - Serializer * * @return SerializerAdapter */ public function getSerializer() { if (!$this->serializer instanceof SerializerAdapter) { // use default serializer if (!$this->serializer) { $this->setSerializer(SerializerFactory::getDefaultAdapter()); // instantiate by class name + serializer_options } else { $options = $this->getSerializerOptions(); $this->setSerializer(SerializerFactory::factory($this->serializer, $options)); } } return $this->serializer; } /** * Set configuration options for instantiating a serializer adapter * * Used by: * - Serializer * * @param mixed $serializerOptions * @return PluginOptions */ public function setSerializerOptions($serializerOptions) { $this->serializerOptions = $serializerOptions; return $this; } /** * Get configuration options for instantiating a serializer adapter * * Used by: * - Serializer * * @return array */ public function getSerializerOptions() { return $this->serializerOptions; } /** * Set flag indicating we should re-throw exceptions * * Used by: * - ExceptionHandler * * @param bool $throwExceptions * @return PluginOptions */ public function setThrowExceptions($throwExceptions) { $this->throwExceptions = (bool) $throwExceptions; return $this; } /** * Should we re-throw exceptions? * * Used by: * - ExceptionHandler * * @return bool */ public function getThrowExceptions() { return $this->throwExceptions; } /** * Normalize a factor * * Cast to int and ensure we have a value greater than zero. * * @param int $factor * @return int * @throws Exception\InvalidArgumentException */ protected function normalizeFactor($factor) { $factor = (int) $factor; if ($factor < 0) { throw new Exception\InvalidArgumentException( "Invalid factor '{$factor}': must be greater or equal 0" ); } return $factor; } }