Shopware\PluginCreator\Command\CreatePluginCommand::interact PHP Method

interact() public method

public interact ( Symfony\Component\Console\Input\InputInterface $input, Symfony\Component\Console\Output\OutputInterface $output )
$input Symfony\Component\Console\Input\InputInterface
$output Symfony\Component\Console\Output\OutputInterface
    public function interact(InputInterface $input, OutputInterface $output)
    {
        /** @var \Symfony\Component\Console\Helper\DialogHelper $dialog */
        $dialog = $this->getHelperSet()->get('dialog');
        $name = $input->getArgument('name');
        $modelName = implode('', array_slice($this->upperToArray($name), 1));
        if ($input->getOption(self::LEGACY_OPTION)) {
            $defaultModel = sprintf('Shopware\\CustomModels\\%s\\%s', $name, $modelName);
        } else {
            $defaultModel = sprintf('%s\\Models\\%s', $name, $modelName);
        }
        $this->normalizeBooleanFields($input);
        $backendModel = $input->getOption('backendModel');
        // for backend / api the backendModel is mandatory
        if (($input->getOption('haveBackend') || $input->getOption('haveApi')) && empty($backendModel)) {
            $modelName = $dialog->askAndValidate($output, '<question>Please specify the main model for your backend application:</question> <comment>' . $defaultModel . '</comment>): ', array($this, 'validateModel'), false, $defaultModel);
            $input->setOption('backendModel', $modelName);
        }
        // a backend implicitly sets "haveModel" to true, if the backend model is not a default model
        if ($input->getOption('haveBackend') && strpos($input->getOption('backendModel'), 'Shopware\\Models') === false) {
            $input->setOption('haveModels', true);
        }
    }