Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Console/QuestionHelper.php
Строк: 137
<?php

namespace IlluminateConsole;

use 
IlluminateConsoleViewComponentsTwoColumnDetail;
use 
SymfonyComponentConsoleFormatterOutputFormatter;
use 
SymfonyComponentConsoleHelperSymfonyQuestionHelper;
use 
SymfonyComponentConsoleOutputOutputInterface;
use 
SymfonyComponentConsoleQuestionChoiceQuestion;
use 
SymfonyComponentConsoleQuestionConfirmationQuestion;
use 
SymfonyComponentConsoleQuestionQuestion;

class 
QuestionHelper extends SymfonyQuestionHelper
{
    
/**
     * {@inheritdoc}
     */
    
protected function writePrompt(OutputInterface $outputQuestion $question)
    {
        
$text OutputFormatter::escapeTrailingBackslash($question->getQuestion());

        
$text $this->ensureEndsWithPunctuation($text);

        
$text "  <fg=default;options=bold>$text</></>";

        
$default $question->getDefault();

        if (
$question->isMultiline()) {
            
$text .= sprintf(' (press %s to continue)''Windows' == PHP_OS_FAMILY
                
'<comment>Ctrl+Z</comment> then <comment>Enter</comment>'
                
'<comment>Ctrl+D</comment>');
        }

        switch (
true) {
            case 
null === $default:
                
$text sprintf('<info>%s</info>'$text);

                break;

            case 
$question instanceof ConfirmationQuestion:
                
$text sprintf('<info>%s (yes/no)</info> [<comment>%s</comment>]'$text$default 'yes' 'no');

                break;

            case 
$question instanceof ChoiceQuestion:
                
$choices $question->getChoices();
                
$text sprintf('<info>%s</info> [<comment>%s</comment>]'$textOutputFormatter::escape($choices[$default] ?? $default));

                break;
        }

        
$output->writeln($text);

        if (
$question instanceof ChoiceQuestion) {
            foreach (
$question->getChoices() as $key => $value) {
                
with(new TwoColumnDetail($output))->render($value$key);
            }
        }

        
$output->write('<options=bold>❯ </>');
    }

    
/**
     * Ensures the given string ends with punctuation.
     *
     * @param  string  $string
     * @return string
     */
    
protected function ensureEndsWithPunctuation($string)
    {
        if (! 
str($string)->endsWith(['?'':''!''.'])) {
            return 
"$string:";
        }

        return 
$string;
    }
}
Онлайн: 2
Реклама