* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Predis\Command; /** * Class that defines a few helpers method for prefixing keys. * * @author Daniele Alessandri */ class PrefixHelpers { /** * Applies the specified prefix only the first argument. * * @param CommandInterface $command Command instance. * @param string $prefix Prefix string. */ public static function first(CommandInterface $command, $prefix) { if ($arguments = $command->getArguments()) { $arguments[0] = "$prefix{$arguments[0]}"; $command->setRawArguments($arguments); } } /** * Applies the specified prefix to all the arguments. * * @param CommandInterface $command Command instance. * @param string $prefix Prefix string. */ public static function all(CommandInterface $command, $prefix) { $arguments = $command->getArguments(); foreach ($arguments as &$key) { $key = "$prefix$key"; } $command->setRawArguments($arguments); } /** * Applies the specified prefix only to even arguments in the list. * * @param CommandInterface $command Command instance. * @param string $prefix Prefix string. */ public static function interleaved(CommandInterface $command, $prefix) { $arguments = $command->getArguments(); $length = count($arguments); for ($i = 0; $i < $length; $i += 2) { $arguments[$i] = "$prefix{$arguments[$i]}"; } $command->setRawArguments($arguments); } /** * Applies the specified prefix to all the arguments but the first one. * * @param CommandInterface $command Command instance. * @param string $prefix Prefix string. */ public static function skipFirst(CommandInterface $command, $prefix) { $arguments = $command->getArguments(); $length = count($arguments); for ($i = 1; $i < $length; $i++) { $arguments[$i] = "$prefix{$arguments[$i]}"; } $command->setRawArguments($arguments); } /** * Applies the specified prefix to all the arguments but the last one. * * @param CommandInterface $command Command instance. * @param string $prefix Prefix string. */ public static function skipLast(CommandInterface $command, $prefix) { $arguments = $command->getArguments(); $length = count($arguments); for ($i = 0; $i < $length - 1; $i++) { $arguments[$i] = "$prefix{$arguments[$i]}"; } $command->setRawArguments($arguments); } }