* // Instatiate dialog in $dialog ... * ezcConsoleDialogViewer::displayDialog( $dialog ); * * * For implementing a custom dialog, the method {@link readLine()} method can be * used to read a line of input from the user. * * @package ConsoleTools * @version 1.5rc1 */ class ezcConsoleDialogViewer { /** * Displays a dialog and returns a valid result from it. * This methods displays a dialog in a loop, until it received a valid * result from it and returns this result. * * @param ezcConsoleDialog $dialog The dialog to display. * @return mixed The result from this dialog. */ public static function displayDialog( ezcConsoleDialog $dialog ) { do { $dialog->display(); } while ( $dialog->hasValidResult() === false ); return $dialog->getResult(); } /** * Returns a line from STDIN. * The returned line is fully trimmed. * * @return string * @throws ezcConsoleDialogAbortException * if the user closes STDIN using -D. */ public static function readLine() { $res = trim( fgets( STDIN ) ); if ( feof( STDIN ) ) { throw new ezcConsoleDialogAbortException(); } return $res; } } ?>