ClientKeyDistribution.php 705 B

12345678910111213141516171819202122232425
  1. <?php
  2. namespace Predis\Options;
  3. use Predis\Distribution\IDistributionStrategy;
  4. use Predis\Distribution\HashRing;
  5. class ClientKeyDistribution extends Option {
  6. public function validate($value) {
  7. if ($value instanceof IDistributionStrategy) {
  8. return $value;
  9. }
  10. if (is_string($value)) {
  11. $valueReflection = new \ReflectionClass($value);
  12. if ($valueReflection->isSubclassOf('\Predis\Distribution\IDistributionStrategy')) {
  13. return new $value;
  14. }
  15. }
  16. throw new \InvalidArgumentException('Invalid value for key distribution');
  17. }
  18. public function getDefault() {
  19. return new HashRing();
  20. }
  21. }