[Form] implement force append / prepend
This commit is contained in:
parent
3bb7dc0bfa
commit
f541a54770
|
@ -628,12 +628,12 @@
|
||||||
* The following methods in `FormBuilder` were deprecated and have a new
|
* The following methods in `FormBuilder` were deprecated and have a new
|
||||||
equivalent:
|
equivalent:
|
||||||
|
|
||||||
* `prependClientTransformer`: no new equivalent, consider using `addViewTransformer`
|
* `prependClientTransformer`: `addViewTransformer`, with `true` as second argument
|
||||||
* `appendClientTransformer`: `addViewTransformer`
|
* `appendClientTransformer`: `addViewTransformer`
|
||||||
* `getClientTransformers`: `getViewTransformers`
|
* `getClientTransformers`: `getViewTransformers`
|
||||||
* `resetClientTransformers`: `resetViewTransformers`
|
* `resetClientTransformers`: `resetViewTransformers`
|
||||||
* `prependNormTransformer`: `addModelTransformer`
|
* `prependNormTransformer`: `addModelTransformer`
|
||||||
* `appendNormTransformer`: no new equivalent, consider using `addModelTransformer`
|
* `appendNormTransformer`: `addModelTransformer`, with `true` as second argument
|
||||||
* `getNormTransformers`: `getModelTransformers`
|
* `getNormTransformers`: `getModelTransformers`
|
||||||
* `resetNormTransformers`: `resetModelTransformers`
|
* `resetNormTransformers`: `resetModelTransformers`
|
||||||
|
|
||||||
|
@ -643,7 +643,7 @@
|
||||||
Before:
|
Before:
|
||||||
|
|
||||||
```
|
```
|
||||||
$builder->prependClientTransformer(new MyTransformer());
|
$builder->appendClientTransformer(new MyTransformer());
|
||||||
```
|
```
|
||||||
|
|
||||||
After:
|
After:
|
||||||
|
|
|
@ -39,7 +39,7 @@ abstract class DoctrineType extends AbstractType
|
||||||
if ($options['multiple']) {
|
if ($options['multiple']) {
|
||||||
$builder
|
$builder
|
||||||
->addEventSubscriber(new MergeDoctrineCollectionListener())
|
->addEventSubscriber(new MergeDoctrineCollectionListener())
|
||||||
->prependClientTransformer(new CollectionToArrayTransformer())
|
->addViewTransformer(new CollectionToArrayTransformer(), true)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@ class ModelType extends AbstractType
|
||||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||||
{
|
{
|
||||||
if ($options['multiple']) {
|
if ($options['multiple']) {
|
||||||
$builder->prependClientTransformer(new CollectionToArrayTransformer());
|
$builder->addViewTransformer(new CollectionToArrayTransformer(), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -179,9 +179,13 @@ class FormConfig implements FormConfigEditorInterface
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function addViewTransformer(DataTransformerInterface $viewTransformer)
|
public function addViewTransformer(DataTransformerInterface $viewTransformer, $forcePrepend = false)
|
||||||
{
|
{
|
||||||
$this->viewTransformers[] = $viewTransformer;
|
if ($forcePrepend) {
|
||||||
|
array_unshift($this->viewTransformers, $viewTransformer);
|
||||||
|
} else {
|
||||||
|
$this->viewTransformers[] = $viewTransformer;
|
||||||
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
@ -222,9 +226,7 @@ class FormConfig implements FormConfigEditorInterface
|
||||||
*/
|
*/
|
||||||
public function prependClientTransformer(DataTransformerInterface $viewTransformer)
|
public function prependClientTransformer(DataTransformerInterface $viewTransformer)
|
||||||
{
|
{
|
||||||
array_unshift($this->viewTransformers, $viewTransformer);
|
return $this->addViewTransformer($viewTransformer, true);
|
||||||
|
|
||||||
return $this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -243,9 +245,13 @@ class FormConfig implements FormConfigEditorInterface
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function addModelTransformer(DataTransformerInterface $modelTransformer)
|
public function addModelTransformer(DataTransformerInterface $modelTransformer, $forceAppend = false)
|
||||||
{
|
{
|
||||||
array_unshift($this->modelTransformers, $modelTransformer);
|
if ($forceAppend) {
|
||||||
|
$this->modelTransformers[] = $modelTransformer;
|
||||||
|
} else {
|
||||||
|
array_unshift($this->modelTransformers, $modelTransformer);
|
||||||
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
@ -271,9 +277,7 @@ class FormConfig implements FormConfigEditorInterface
|
||||||
*/
|
*/
|
||||||
public function appendNormTransformer(DataTransformerInterface $modelTransformer)
|
public function appendNormTransformer(DataTransformerInterface $modelTransformer)
|
||||||
{
|
{
|
||||||
$this->modelTransformers[] = $modelTransformer;
|
return $this->addModelTransformer($modelTransformer, true);
|
||||||
|
|
||||||
return $this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -52,7 +52,7 @@ interface FormConfigEditorInterface extends FormConfigInterface
|
||||||
function addValidator(FormValidatorInterface $validator);
|
function addValidator(FormValidatorInterface $validator);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Appends a transformer to the view transformer chain.
|
* Appends / prepends a transformer to the view transformer chain.
|
||||||
*
|
*
|
||||||
* The transform method of the transformer is used to convert data from the
|
* The transform method of the transformer is used to convert data from the
|
||||||
* normalized to the view format.
|
* normalized to the view format.
|
||||||
|
@ -60,10 +60,11 @@ interface FormConfigEditorInterface extends FormConfigInterface
|
||||||
* view to the normalized format.
|
* view to the normalized format.
|
||||||
*
|
*
|
||||||
* @param DataTransformerInterface $viewTransformer
|
* @param DataTransformerInterface $viewTransformer
|
||||||
|
* @param Boolean $forcePrepend if set to true, prepend instead of appending
|
||||||
*
|
*
|
||||||
* @return self The configuration object.
|
* @return self The configuration object.
|
||||||
*/
|
*/
|
||||||
function addViewTransformer(DataTransformerInterface $viewTransformer);
|
function addViewTransformer(DataTransformerInterface $viewTransformer, $forcePrepend = false);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clears the view transformers.
|
* Clears the view transformers.
|
||||||
|
@ -73,7 +74,7 @@ interface FormConfigEditorInterface extends FormConfigInterface
|
||||||
function resetViewTransformers();
|
function resetViewTransformers();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepends a transformer to the normalization transformer chain.
|
* Prepends / appends a transformer to the normalization transformer chain.
|
||||||
*
|
*
|
||||||
* The transform method of the transformer is used to convert data from the
|
* The transform method of the transformer is used to convert data from the
|
||||||
* model to the normalized format.
|
* model to the normalized format.
|
||||||
|
@ -81,10 +82,11 @@ interface FormConfigEditorInterface extends FormConfigInterface
|
||||||
* normalized to the model format.
|
* normalized to the model format.
|
||||||
*
|
*
|
||||||
* @param DataTransformerInterface $modelTransformer
|
* @param DataTransformerInterface $modelTransformer
|
||||||
|
* @param Boolean $forceAppend if set to true, append instead of prepending
|
||||||
*
|
*
|
||||||
* @return self The configuration object.
|
* @return self The configuration object.
|
||||||
*/
|
*/
|
||||||
function addModelTransformer(DataTransformerInterface $modelTransformer);
|
function addModelTransformer(DataTransformerInterface $modelTransformer, $forceAppend = false);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clears the normalization transformers.
|
* Clears the normalization transformers.
|
||||||
|
|
Reference in New Issue