<?php
namespace Factory\SupportBundle\Contract\DataMapper;
use Factory\SupportBundle\Contract\DataMapper\AbstractDataMapper;
final class ListDataMapper extends AbstractDataMapper
{
protected $className;
public function __construct($list, $className, array $arguments = [])
{
parent::__construct($list);
$this->arguments = $arguments;
$this->className = $className;
}
public function toArray($request)
{
return $this->all($request);
}
public function all($request)
{
$list = [];
foreach ($this->resource as $data) {
$list[] = (new $this->className($data, ...$this->arguments))->all($request);
}
return $list;
}
}