Platformsh\Cli\Command\MultiCommand::getSelectedProjects PHP Метод

getSelectedProjects() защищенный Метод

Projects can be specified via the command-line option --projects (as a list of project IDs) or, if possible, the user will be prompted with a checklist via the 'dialog' utility.
protected getSelectedProjects ( Symfony\Component\Console\Input\InputInterface $input ) : Platformsh\Client\Model\Project[] | false
$input Symfony\Component\Console\Input\InputInterface
Результат Platformsh\Client\Model\Project[] | false An array of projects, or false on error.
    protected function getSelectedProjects(InputInterface $input)
    {
        $projectList = $input->getOption('projects');
        $projects = $this->getAllProjects($input);
        if (!empty($projectList)) {
            $projectIds = array_unique(preg_split('/[,\\s]+/', $projectList));
            if ($invalid = array_diff($projectIds, array_keys($projects))) {
                $this->stdErr->writeln(sprintf('Project ID(s) not found: <error>%s</error>', implode(', ', $invalid)));
                return false;
            }
        } elseif (!$input->isInteractive()) {
            $this->stdErr->writeln('In non-interactive mode, the --projects option must be specified.');
            return false;
        } elseif (!$this->getHelper('shell')->commandExists('dialog')) {
            $this->stdErr->writeln('The "dialog" utility is required for interactive use.');
            $this->stdErr->writeln('You can specify projects via the --projects option.');
            return false;
        } else {
            $projectOptions = [];
            foreach ($projects as $project) {
                $projectOptions[$project->id] = $project->title ?: $project->id;
            }
            $projectIds = $this->showDialogChecklist($projectOptions, 'Choose one or more projects');
            if (empty($projectIds)) {
                return false;
            }
            $this->stdErr->writeln('Selected project(s): ' . implode(',', $projectIds));
            $this->stdErr->writeln('');
        }
        return array_intersect_key($projects, array_flip($projectIds));
    }