Choise multiple answer from given options?

@param  string $prompt  The question you want to ask for
@param  array  $options Available options
@return string
776352
public function checkboxes($prompt, array $options)
    {
        if ($this->hasSttyAvailable()) {
            $checkboxes = $this->climate->checkboxes($prompt, $options);

            return $checkboxes->prompt();
        }
        return '';
    }
1015257
public function addPrompt( $prompt ) {
		$added = false;

		/*
		 * Determine whether to add the new prompt or not.
		 *
		 * If we've already a prompt for user_did_this_x_times, don't add another prompt for the
		 * same thing.
		 *
		 * If a plugin has already been dismissed, no need to add any additional rating prompts,
		 * they will never be showing.
		 */
		if ( ! $this->isPrompt( $prompt['name'] ) && ! $this->isPluginDismissed( $prompt['plugin'] ) ) {
			$prompt['time_added'] = time();

			$prompts = $this->getPrompts();

			$prompts[] = $prompt;

			$added = $this->savePrompts( $prompts );
		}

		return $added;
	}
489365
public function setPrompts(array $prompts = null)
    {
        ValidationUtility::ensureNullOrArrayOfType(
            '$prompts', $prompts, '\Authlete\Types\Prompt');

        $this->prompts = $prompts;

        return $this;
    }
369753
public function readLine($prompt)
    {
        $this
            ->getOutputter()
            ->stdout($prompt);
        $out = fgets($this->getHandle());
        $this->getOutputter()->stdout("\n");
        return rtrim($out);
    }
1250745
public function input($options = [])
    {
        if (is_string($options)) {
            $options = ['class' => $options];
        }

        $input = new Input($this->expression('input'), $options);

        return $input;
    }
842135
private function readline(string $prompt)
    {
        if (PHP_OS == 'WINNT') {
            echo $prompt;
            $line = stream_get_line(STDIN, 1024, PHP_EOL);

        } else {
            $line = readline($prompt);
        }
        return $line;
    }
976213
public static function prompt($msg, $password = null)
    {
        // output message
        echo $msg;
        // if password then disable text output
        if ($password != null) {
            system('stty -echo');
        }

        $input = trim(fgets(STDIN));

        if ($password != null) {
            system('stty echo');
            echo PHP_EOL; // output end of line because the user's CR won't have been outputted
        }
        return $input;
    }
441820
public function ask(string $question, array $options): int
	{
		$options = array_values($options);

		$this->output->writeLn(trim($question));

		$this->output->write($this->buildOptionsList($options));

		$key = (int) $this->input->read() - 1;

		if(isset($options[$key]))
		{
			return $key;
		}

		return $this->ask($question, $options);
	}
675797
public function getInputOptionSynopsis(input\Option $definition, array $options = null)
    {
        $shortcut = $definition->getShortcut() ? sprintf('-%s|', $definition->getShortcut()) : '';

        if ($value = $definition->getValue()) {
            $format = $value->is(input\Value::REQUIRED) ? '%s--%s="..."' : '%s--%s[="..."]';
        } else {
            $format = '%s--%s';
        }

        return sprintf('['.$format.']', $shortcut, $definition->getName());
    }
1277858
public function password($prompt)
    {
        if ($this->hasSttyAvailable()) {
            $password = $this->climate->password($prompt);

            return $password->prompt();
        }
        return '';
    }
1077879
public function serialize(ChoiceQuestion $choiceQuestion, array $options = [])
    {
        $serialized = [
            'random' => $choiceQuestion->getShuffle(),
            'multiple' => $choiceQuestion->isMultiple(),
            'numbering' => $choiceQuestion->getNumbering(),
            'direction' => $choiceQuestion->getDirection(),
        ];

        // Serializes choices
        $choices = $this->serializeChoices($choiceQuestion, $options);

        if ($choiceQuestion->getShuffle() && in_array(Transfer::SHUFFLE_ANSWERS, $options)) {
            shuffle($choices);
        }

        $serialized['choices'] = $choices;

        if (in_array(Transfer::INCLUDE_SOLUTIONS, $options)) {
            $serialized['solutions'] = $this->serializeSolutions($choiceQuestion);
        }

        return $serialized;
    }
449577
public function confirm(string $prompt, bool $yes = null): bool
    {
        $default = null;
        if ($yes === true) {
            $default = 'Y';
        } elseif ($yes === false) {
            $default = 'n';
        }

        return 'Y' === $this->ask($prompt, ['Y', 'n'], $default);
    }
471089
public function choice($question, array $choices, $default = null)
    {
        $helper = $this->getHelper('question');

        $question = new ChoiceQuestion($question, $choices, $default);

        $question->setMultiselect(true);

        return $helper->ask($this->input, $this->getOutputInterface(), $question);
    }
752485
public function getResponse($prompt)
	{
		$prompt = trim($prompt);
		$this->addString("{$prompt} ");

		$response = fgets(STDIN);
		$response = trim($response);

		return $response;
	}
430017
public function askUntillValid(string $prompt, callable $validationCallback)
    {
        $result = null;

        while($validationCallback($result) !== true) {
            $result = $this->readLine("$prompt");
        }
        return $result;
    }
517695
private function serializeHints(Item $question, array $options = [])
    {
        return array_map(function (Hint $hint) use ($options) {
            return $this->hintSerializer->serialize($hint, $options);
        }, $question->getHints()->toArray());
    }
1186211
public function choose($question, $choice = 'yn', $default = 'n')
    {
        if (!is_string($choice)) {
            $choice = implode('', $choice);
        }

        $lowercase = str_ireplace($default, strtoupper($default), strtolower($choice));
        $choices = trim(implode('/', preg_split('//', $lowercase)), '/');
        $line = $this->prompt(sprintf('%s [%s]', $question, $choices), $default, '');

        if (stripos($choice, $line) !== false) {
            return strtolower($line);
        }

        return strtolower($default);
    }