Apache Zeta Components Manual :: File Source for question_dialog.php
Source for file question_dialog.php
Documentation is available at question_dialog.php
* File containing the ezcConsoleQuestionDialog class.
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* @version //autogentag//
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
* Dialog class to ask a simple question.
* This dialog outputs a certain string to the user and requests a line of
* input. This is commonly used to ask questions like "Do you want to proceed?"
* and retrieve an answer like "y" for yes or "n" for no.
* The behaviour of this dialog is defined by an instance of
* {@link ezcConsoleQuestionDialogOptions}.
* @property ezcConsoleQuestionDialogOptions $options
* Options for the dialog.
* @property ezcConsoleOutput $output
* Output object for displaying the dialog.
* Creates a new question dialog.
* Creates a new menu dialog to be displayed to the user. All behaviour is
* defined through the $options parameter. The $output parameter is used to
* display the dialog in the {@link display()} method.
* @param ezcConsoleOutput $output Output object.
* @param ezcConsoleQuestionDialogOptions $options Options.
public function __construct( ezcConsoleOutput $output, ezcConsoleQuestionDialogOptions $options =
null )
* Returns if the dialog retrieved a valid result.
* If a valid result has already been received, this method returns true,
* @return bool If a valid result was retrieved.
return $this->result !==
null;
* Returns the result retrieved.
* If no valid result was retreived, yet, this method should throw an
* ezcConsoleNoValidDialogResultException.
* If no valid result was retreived, yet, this method throws an
* ezcConsoleNoValidDialogResultException. Use {@link hasValidResult()} to
* @return mixed The retreived result.
* @throws ezcDialogNoValidResultException
* if this method is called without a valid result being retrieved
* by the object. Use {@link hasValidResult()} to avoid this
* Displays the dialog and retreives a value from the user.
* Displays the dialog and retreives the desired answer from the user. If
* the a valid result is retrieved, it can be obtained using {@link }
* getResult()}. The method {@link hasValidResult()} can be used to check
* if a valid result is available.
* @throws ezcConsoleDialogAbortException
* if the user closes STDIN using <CTRL>-D.
$this->output->outputText(
$this->options->text .
( $this->options->showResults ===
true ?
" " .
$this->options->validator->getResultString() :
"" ) .
" ",
if ( $this->options->validator->validate( $result ) )
* Resets a possibly received result and all changes made to the dialog
* during {@link display()}. After that, the dialog can be re-used. All
* option values are kept.
* Returns a ready to use yes/no question dialog.
* Returns a question dialog, which requests the answers "y" for "yes" or
* "n" for "no" from the user. The answer is converted to lower-case.
* // Would you like to proceed? (y/n)
* $dialog = ezcConsoleDialog( $out, "Would you like to proceed?" );
* // Would you like to proceed? (y/n) [n]
* $dialog = ezcConsoleDialog( $out, "Would you like to proceed?", "n" );
* @param ezcConsoleOutput $out Output object.
* @param string $questionString Question string.
* @param string $default "y" or "n", if default value is desired.
* @return ezcConsoleQuestionDialog The created dialog.
public static function YesNoQuestion( ezcConsoleOutput $out, $questionString, $default =
null )
$opts->text =
$questionString;
$opts->showResults =
true;
* @throws ezcBasePropertyNotFoundException
* If the the desired property is not found.
* @param string $propertyName Name of the property.
* @return mixed Value of the property or null.
public function __get( $propertyName )
* @param string $propertyName Name of the property.
* @param mixed $propertyValue The value for the property.
* @throws ezcBasePropertyPermissionException
* If the property you try to access is read-only.
* @throws ezcBasePropertyNotFoundException
* If the the desired property is not found.
public function __set( $propertyName, $propertyValue )
"instance of ezcConsoleQuestionDialogOptions"
"instance of ezcConsoleOutput"
$this->properties[$propertyName] =
$propertyValue;
* @param string $propertyName Name of the property to check.
* @return bool If the property exists or not.
public function __isset( $propertyName )