/** * @inheritdoc */ public function execute(CommandInterface $command) { $commandName = $command->getCommand(); $arguments = $command->getArguments(); $totalArguments = count($arguments); $parts = ['*' . ($totalArguments + 1), '$' . strlen($commandName), $commandName]; for ($i = 0; $i < $totalArguments; $i++) { $argument = $arguments[$i]; $parts[] = '$' . strlen($argument); $parts[] = $argument; } $this->send(implode("\r\n", $parts) . "\r\n"); return $this->receive($command->isBlocking()); }