]> git.immae.eu Git - github/wallabag/wallabag.git/blob - src/Wallabag/CoreBundle/Form/DataTransformer/StringToListTransformer.php
CS
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Form / DataTransformer / StringToListTransformer.php
1 <?php
2
3 namespace Wallabag\CoreBundle\Form\DataTransformer;
4
5 use Symfony\Component\Form\DataTransformerInterface;
6
7 /**
8 * Transforms a comma-separated list to a proper PHP array.
9 * Example: the string "foo, bar" will become the array ["foo", "bar"].
10 */
11 class StringToListTransformer implements DataTransformerInterface
12 {
13 /**
14 * @var string
15 */
16 private $separator;
17
18 /**
19 * @param string $separator The separator used in the list
20 */
21 public function __construct($separator = ',')
22 {
23 $this->separator = $separator;
24 }
25
26 /**
27 * Transforms a list to a string.
28 *
29 * @param array|null $list
30 *
31 * @return string
32 */
33 public function transform($list)
34 {
35 if (null === $list) {
36 return '';
37 }
38
39 return implode($this->separator, $list);
40 }
41
42 /**
43 * Transforms a string to a list.
44 *
45 * @param string $string
46 *
47 * @return array|null
48 */
49 public function reverseTransform($string)
50 {
51 if (null === $string) {
52 return;
53 }
54
55 return array_values(array_filter(array_map('trim', explode($this->separator, $string))));
56 }
57 }