*/ final class StringToArrayTransformer implements DataTransformerInterface { /** * @param non-empty-string $separator */ public function __construct(private readonly string $separator = ',') { } /** * Transforms an array of strings to a string. * * @param array $value * @return string */ public function transform(mixed $value): mixed { if (empty($value)) { return ''; } return implode($this->separator, $value); } /** * Transforms a string to an array of strings. * * @param string|null $value * @return array * @throws TransformationFailedException */ public function reverseTransform(mixed $value): mixed { // check for empty list if ('' === $value || null === $value) { return []; } return array_filter(array_unique(array_map('trim', explode($this->separator, $value)))); } }