Symfony Form Data Transformer which transforms arrays to delimited strings and vice-versa
This is a data transformer for the Symfony form framework.
It is meant for transforming text fields containing delimited strings to arrays.
You can use the data transformer as follows:
$form->add(
$builder->create('tags', 'text')->addModelTransformer(
new ArrayToDelimitedStringTransformer()
)
);
This will transform the tags
text field as follows:
// Tranform
array('one', 'two', 'three', 'four') === 'one, two, three, four'
// Reverse transform
' one , two , three, four,' === array('one', 'two', 'three', 'four')
You can change the delimiting string with the first constructor argument:
new ArrayToDelimitedStringTransformer(';')
Will result in:
// Transform
array('one', 'two', 'three', 'four') === 'one; two; three; four'
// Reverse Transform
'one ; two;three ; four' => array('one', 'two', 'three')
Additionally you can change the way in which the output is formatted with by setting the amount of whitespace (padding) before and after the text elements produced by a transformation:
new ArrayToDelimitedStringTransformer('%', 1, 1)
Will result in:
// Transform
array('one', 'two', 'three', 'four') === 'one % two % three % four'
// Reverse Transform
'one % two%three % four' => array('one', 'two', 'three')