![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/demo.cartinsight.co/vendor/predis/predis/src/Configuration/Option/ |
<?php /* * This file is part of the Predis package. * * (c) Daniele Alessandri <[email protected]> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Predis\Configuration\Option; use Predis\Cluster\Hash; use Predis\Configuration\OptionInterface; use Predis\Configuration\OptionsInterface; /** * Configures an hash generator used by the redis-cluster connection backend. * * @author Daniele Alessandri <[email protected]> */ class CRC16 implements OptionInterface { /** * Returns an hash generator instance from a descriptive name. * * @param OptionsInterface $options Client options. * @param string $description Identifier of a hash generator (`predis`, `phpiredis`) * * @return callable */ protected function getHashGeneratorByDescription(OptionsInterface $options, $description) { if ($description === 'predis') { return new Hash\CRC16(); } elseif ($description === 'phpiredis') { return new Hash\PhpiredisCRC16(); } else { throw new \InvalidArgumentException( 'String value for the crc16 option must be either `predis` or `phpiredis`' ); } } /** * {@inheritdoc} */ public function filter(OptionsInterface $options, $value) { if (is_callable($value)) { $value = call_user_func($value, $options); } if (is_string($value)) { return $this->getHashGeneratorByDescription($options, $value); } elseif ($value instanceof Hash\HashGeneratorInterface) { return $value; } else { $class = get_class($this); throw new \InvalidArgumentException("$class expects a valid hash generator"); } } /** * {@inheritdoc} */ public function getDefault(OptionsInterface $options) { return function_exists('phpiredis_utils_crc16') ? new Hash\PhpiredisCRC16() : new Hash\CRC16(); } }