class Question in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/symfony/console/Question/Question.php \Symfony\Component\Console\Question\Question
Represents a Question.
@author Fabien Potencier <fabien@symfony.com>
Hierarchy
- class \Symfony\Component\Console\Question\Question
Expanded class hierarchy of Question
4 files declare their use of Question
- QuestionHelper.php in vendor/
symfony/ console/ Helper/ QuestionHelper.php - QuestionHelperTest.php in vendor/
symfony/ console/ Tests/ Helper/ QuestionHelperTest.php - SymfonyQuestionHelper.php in vendor/
symfony/ console/ Helper/ SymfonyQuestionHelper.php - SymfonyStyle.php in vendor/
symfony/ console/ Style/ SymfonyStyle.php
File
- vendor/
symfony/ console/ Question/ Question.php, line 19
Namespace
Symfony\Component\Console\QuestionView source
class Question {
private $question;
private $attempts;
private $hidden = false;
private $hiddenFallback = true;
private $autocompleterValues;
private $validator;
private $default;
private $normalizer;
/**
* Constructor.
*
* @param string $question The question to ask to the user
* @param mixed $default The default answer to return if the user enters nothing
*/
public function __construct($question, $default = null) {
$this->question = $question;
$this->default = $default;
}
/**
* Returns the question.
*
* @return string
*/
public function getQuestion() {
return $this->question;
}
/**
* Returns the default answer.
*
* @return mixed
*/
public function getDefault() {
return $this->default;
}
/**
* Returns whether the user response must be hidden.
*
* @return bool
*/
public function isHidden() {
return $this->hidden;
}
/**
* Sets whether the user response must be hidden or not.
*
* @param bool $hidden
*
* @return Question The current instance
*
* @throws \LogicException In case the autocompleter is also used
*/
public function setHidden($hidden) {
if ($this->autocompleterValues) {
throw new \LogicException('A hidden question cannot use the autocompleter.');
}
$this->hidden = (bool) $hidden;
return $this;
}
/**
* In case the response can not be hidden, whether to fallback on non-hidden question or not.
*
* @return bool
*/
public function isHiddenFallback() {
return $this->hiddenFallback;
}
/**
* Sets whether to fallback on non-hidden question if the response can not be hidden.
*
* @param bool $fallback
*
* @return Question The current instance
*/
public function setHiddenFallback($fallback) {
$this->hiddenFallback = (bool) $fallback;
return $this;
}
/**
* Gets values for the autocompleter.
*
* @return null|array|\Traversable
*/
public function getAutocompleterValues() {
return $this->autocompleterValues;
}
/**
* Sets values for the autocompleter.
*
* @param null|array|\Traversable $values
*
* @return Question The current instance
*
* @throws \InvalidArgumentException
* @throws \LogicException
*/
public function setAutocompleterValues($values) {
if (is_array($values) && $this
->isAssoc($values)) {
$values = array_merge(array_keys($values), array_values($values));
}
if (null !== $values && !is_array($values)) {
if (!$values instanceof \Traversable || $values instanceof \Countable) {
throw new \InvalidArgumentException('Autocompleter values can be either an array, `null` or an object implementing both `Countable` and `Traversable` interfaces.');
}
}
if ($this->hidden) {
throw new \LogicException('A hidden question cannot use the autocompleter.');
}
$this->autocompleterValues = $values;
return $this;
}
/**
* Sets a validator for the question.
*
* @param null|callable $validator
*
* @return Question The current instance
*/
public function setValidator($validator) {
$this->validator = $validator;
return $this;
}
/**
* Gets the validator for the question.
*
* @return null|callable
*/
public function getValidator() {
return $this->validator;
}
/**
* Sets the maximum number of attempts.
*
* Null means an unlimited number of attempts.
*
* @param null|int $attempts
*
* @return Question The current instance
*
* @throws \InvalidArgumentException In case the number of attempts is invalid.
*/
public function setMaxAttempts($attempts) {
if (null !== $attempts && $attempts < 1) {
throw new \InvalidArgumentException('Maximum number of attempts must be a positive value.');
}
$this->attempts = $attempts;
return $this;
}
/**
* Gets the maximum number of attempts.
*
* Null means an unlimited number of attempts.
*
* @return null|int
*/
public function getMaxAttempts() {
return $this->attempts;
}
/**
* Sets a normalizer for the response.
*
* The normalizer can be a callable (a string), a closure or a class implementing __invoke.
*
* @param callable $normalizer
*
* @return Question The current instance
*/
public function setNormalizer($normalizer) {
$this->normalizer = $normalizer;
return $this;
}
/**
* Gets the normalizer for the response.
*
* The normalizer can ba a callable (a string), a closure or a class implementing __invoke.
*
* @return callable
*/
public function getNormalizer() {
return $this->normalizer;
}
protected function isAssoc($array) {
return (bool) count(array_filter(array_keys($array), 'is_string'));
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Question:: |
private | property | ||
Question:: |
private | property | ||
Question:: |
private | property | ||
Question:: |
private | property | ||
Question:: |
private | property | ||
Question:: |
private | property | ||
Question:: |
private | property | ||
Question:: |
private | property | ||
Question:: |
public | function | Gets values for the autocompleter. | |
Question:: |
public | function | Returns the default answer. | |
Question:: |
public | function | Gets the maximum number of attempts. | |
Question:: |
public | function | Gets the normalizer for the response. | |
Question:: |
public | function | Returns the question. | |
Question:: |
public | function | Gets the validator for the question. | |
Question:: |
protected | function | ||
Question:: |
public | function | Returns whether the user response must be hidden. | |
Question:: |
public | function | In case the response can not be hidden, whether to fallback on non-hidden question or not. | |
Question:: |
public | function | Sets values for the autocompleter. | |
Question:: |
public | function | Sets whether the user response must be hidden or not. | |
Question:: |
public | function | Sets whether to fallback on non-hidden question if the response can not be hidden. | |
Question:: |
public | function | Sets the maximum number of attempts. | |
Question:: |
public | function | Sets a normalizer for the response. | |
Question:: |
public | function | Sets a validator for the question. | |
Question:: |
public | function | Constructor. | 2 |