alexpts/php-data-transformer

View on GitHub
src/PTS/DataTransformer/Types/RefModelsToArrayStringIdType.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
namespace PTS\DataTransformer\Types;

use Symfony\Component\Yaml\Exception\ParseException;

class RefModelsToArrayStringIdType
{
    /**
     * @param mixed[] $value
     * @return array
     *
     *  @throws ParseException
     */
    public function toData(array $value)
    {
        $newValue = [];
        foreach ($value as $model) {
            $relId = is_object($model) ? $model->getId() : (string) $model;
            $newValue[] = $relId;
        }

        return $newValue;
    }

    /**
     * @param array[] $value
     * @return array
     *
     * @throws ParseException
     */
    public function toModel($value)
    {
        return array_map('strval', $value);
    }
}