for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace FRZB\Component\RequestMapper\Mapper;
use Fp\Collections\Entry;
use Fp\Collections\HashMap;
use Symfony\Component\DependencyInjection\Attribute\AutoconfigureTag;
#[AutoconfigureTag(MapperInterface::class)]
class ArrayMapper implements MapperInterface
{
public function __invoke(string $typeName, array $value, array $parameters = []): array
return HashMap::collect($parameters[key($value)] ?? [])
->map(static fn (Entry $paramEntry) => $value[$paramEntry->key])
->map(fn (Entry $paramEntry) => ($this)($paramEntry->value, $parameters[key($value)][$paramEntry->key] ?? []))
->toAssocArray()
->get()
;
}
public function canMap(string $typeName, mixed $value = null): bool
return \is_array($value) && 'array' === $typeName;
public static function getPriority(): int
return 4;