ServerEval.php 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /*
  3. * This file is part of the Predis package.
  4. *
  5. * (c) Daniele Alessandri <suppakilla@gmail.com>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Predis\Command;
  11. /**
  12. * @link http://redis.io/commands/eval
  13. * @author Daniele Alessandri <suppakilla@gmail.com>
  14. */
  15. class ServerEval extends AbstractCommand implements PrefixableCommandInterface
  16. {
  17. /**
  18. * {@inheritdoc}
  19. */
  20. public function getId()
  21. {
  22. return 'EVAL';
  23. }
  24. /**
  25. * {@inheritdoc}
  26. */
  27. public function prefixKeys($prefix)
  28. {
  29. $arguments = $this->getArguments();
  30. for ($i = 2; $i < $arguments[1] + 2; $i++) {
  31. $arguments[$i] = "$prefix{$arguments[$i]}";
  32. }
  33. $this->setRawArguments($arguments);
  34. }
  35. /**
  36. * Calculates the SHA1 hash of the body of the script.
  37. *
  38. * @return string SHA1 hash.
  39. */
  40. public function getScriptHash()
  41. {
  42. return sha1($this->getArgument(0));
  43. }
  44. }