. // }}} /** * Handle network public feed * * @package GNUsocial * @category Form * * @author Hugo Sales * @copyright 2020-2021 Free Software Foundation, Inc http://www.fsf.org * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ namespace App\Util\Form; use App\Util\Formatting; use Symfony\Component\Form\DataTransformerInterface; use Symfony\Component\Form\Exception\TransformationFailedException; class ArrayTransformer implements DataTransformerInterface { // Can't use type annotations, to conform to interface /** * @param array $a * * @return string */ public function transform($a) { if (!\is_array($a)) { throw new TransformationFailedException(); } return Formatting::toString($a, Formatting::SPLIT_BY_SPACE); } /** * @param string $s * * @return array */ public function reverseTransform($s) { if (empty($s)) { return []; } if (\is_string($s) && Formatting::toArray($s, $arr, Formatting::SPLIT_BY_BOTH)) { return $arr; } else { throw new TransformationFailedException(); } } }