platformsh / console-form
A lightweight Symfony Console form system.
v1.0.0-beta1
2024-11-25 23:14 UTC
Requires
- php: ^8.2
- symfony/console: ^7.0 || ^6.0
Requires (Dev)
- phpunit/phpunit: ^11
- symplify/easy-coding-standard: ^12.3
This package is auto-updated.
Last update: 2026-05-26 02:46:51 UTC
README
A lightweight form system for Symfony Console commands.
Commands can define forms which can be used both via command-line options and via interactive input.
Example
<?php namespace MyApplication; use Platformsh\ConsoleForm\Field\EmailAddressField; use Platformsh\ConsoleForm\Field\Field; use Platformsh\ConsoleForm\Form; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; class MyCommand extends Command { protected function configure() { $this->setName('my:command') ->setDescription('An example command'); $this->form = Form::fromArray([ 'name' => new Field('Name', ['description' => 'Your full name']), 'mail' => new EmailAddressField('Email', ['description' => 'Your email address']), ]); $this->form->configureInputDefinition($this->getDefinition()); } protected function execute(InputInterface $input, OutputInterface $output) { $questionHelper = $this->getHelper('question'); $result = $this->form->resolveOptions($input, $output, $questionHelper); $output->writeln("Your name: " . $result['name']); $output->writeln("Your email address: " . $result['mail']); } }