📋 Commit iniziale con: - ✅ Documentazione unificata in docs/ - ✅ Codice Laravel in netgescon-laravel/ - ✅ Script automazione in scripts/ - ✅ Configurazione sync rsync - ✅ Struttura organizzata e pulita 🔄 Versione: 2025.07.19-1644 🎯 Sistema pronto per Git distribuito
49 lines
1.4 KiB
PHP
49 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Illuminate\Console\View\Components;
|
|
|
|
use Symfony\Component\Console\Question\ChoiceQuestion;
|
|
|
|
class Choice extends Component
|
|
{
|
|
/**
|
|
* Renders the component using the given arguments.
|
|
*
|
|
* @param string $question
|
|
* @param array<array-key, string> $choices
|
|
* @param mixed $default
|
|
* @param int $attempts
|
|
* @param bool $multiple
|
|
* @return mixed
|
|
*/
|
|
public function render($question, $choices, $default = null, $attempts = null, $multiple = false)
|
|
{
|
|
return $this->usingQuestionHelper(
|
|
fn () => $this->output->askQuestion(
|
|
$this->getChoiceQuestion($question, $choices, $default)
|
|
->setMaxAttempts($attempts)
|
|
->setMultiselect($multiple)
|
|
),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Get a ChoiceQuestion instance that handles array keys like Prompts.
|
|
*
|
|
* @param string $question
|
|
* @param array $choices
|
|
* @param mixed $default
|
|
* @return \Symfony\Component\Console\Question\ChoiceQuestion
|
|
*/
|
|
protected function getChoiceQuestion($question, $choices, $default)
|
|
{
|
|
return new class($question, $choices, $default) extends ChoiceQuestion
|
|
{
|
|
protected function isAssoc(array $array): bool
|
|
{
|
|
return ! array_is_list($array);
|
|
}
|
|
};
|
|
}
|
|
}
|