for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types = 1);
namespace KingsonDe\Marshal;
use KingsonDe\Marshal\Data\FlexibleData;
abstract class AbstractObjectMapper {
/**
* @param FlexibleData $flexibleData
* @param mixed[] $additionalData
* @return mixed
*/
abstract public function map(FlexibleData $flexibleData, ...$additionalData);
* @param AbstractObjectMapper $mapper
public function item(
AbstractObjectMapper $mapper,
FlexibleData $flexibleData,
...$additionalData
) {
return $mapper->map($flexibleData, ...$additionalData);
}
* @param mixed[] ...$additionalData
* @return array
public function collection(
): array {
$data = [];
foreach ($flexibleData as $item) {
$data[] = $mapper->map($item, ...$additionalData);
return $data;