/** * Populates FormBuilder * * @param FormBuilderInterface $fb * @param object $model * @param string $form view to generate * @param array $context */ public function populateFormBuilder(FormBuilderInterface $fb, $model, $form = 'default', $context = array()) { if ($this->needsSorting) { $this->sortRegisteredServices(); } $fields = null; foreach ($this->sortedFormViewProviders as $provider) { if ($provider->supports($form, $model, $context)) { $fields = $provider->getFields($model, $context); break; } } if ($fields === null) { $fields = $this->getFields($model, $form); } $fields = $this->normalizeFields($fields); $configuration = $this->getFieldsConfiguration($model, $fields); foreach ($this->sortedFormConfigurationModifiers as $modifier) { if ($modifier->supports($model, $configuration, $context)) { $configuration = $modifier->modify($model, $configuration, $context); } } foreach ($configuration as $field => $options) { $type = null; if (isset($options['type'])) { $type = FieldTypeMapper::map($options['type']); unset($options['type']); } foreach ($this->sortedFormFieldResolvers as $resolver) { if ($resolver->supports($model, $field, $type, $options, $context)) { $fb->add($resolver->getFormField($fb, $field, $type, $options, $context)); continue 2; } } $fb->add($field, $type, $options); } }
/** * @dataProvider dataProvider * @param $actual * @param $expected */ public function testMap($actual, $expected) { $this->assertEquals(FieldTypeMapper::map($actual), $expected); }