public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('modules', 'choice', array('choices' => $this->getInstallableModules(), 'expanded' => true, 'multiple' => true))->add('example_data', 'checkbox', array('label' => 'Install example data', 'required' => false))->add('different_debug_email', 'checkbox', array('label' => 'Use a specific debug email address', 'required' => false))->add('debug_email', 'email', array('required' => false));
// make sure the required modules are selected when submitting
$builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) {
$data = $event->getData();
// add the modules array if it doesn't exit
if (!isset($data['modules'])) {
$data['modules'] = array();
}
$data['modules'] = array_merge($data['modules'], ForkInstaller::getRequiredModules());
$event->setData($data);
});
}