<?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Console\Prompt; class Confirm extends Char { /** * @var string */ protected $promptText = 'Are you sure?'; /** * @var string */ protected $allowedChars = 'yn'; /** * @var string */ protected $yesChar = 'y'; /** * @var string */ protected $noChar = 'n'; /** * @var bool */ protected $ignoreCase = true; /** * Ask the user for a single key stroke * * @param string $promptText The prompt text to display in console * @param string $yesChar The "yes" key (defaults to Y) * @param string $noChar The "no" key (defaults to N) */ public function __construct( $promptText = 'Are you sure?', $yesChar = 'y', $noChar = 'n' ) { if ($promptText !== null) { $this->setPromptText($promptText); } if ($yesChar !== null) { $this->setYesChar($yesChar); } if ($noChar !== null) { $this->setNoChar($noChar); } } /** * Show the confirmation message and return result. * * @return bool */ public function show() { $char = parent::show(); if ($this->ignoreCase) { $response = strtolower($char) === strtolower($this->yesChar); } else { $response = $char === $this->yesChar; } return $this->lastResponse = $response; } /** * @param string $noChar */ public function setNoChar($noChar) { $this->noChar = $noChar; $this->setAllowedChars($this->yesChar . $this->noChar); } /** * @return string */ public function getNoChar() { return $this->noChar; } /** * @param string $yesChar */ public function setYesChar($yesChar) { $this->yesChar = $yesChar; $this->setAllowedChars($this->yesChar . $this->noChar); } /** * @return string */ public function getYesChar() { return $this->yesChar; } }