<?php
declare(strict_types=1);
interface Hydrator
{
public function hydrate($incoming, $model) : string;
}
interface ContextualHydratorExtension extends Hydrator
{
public function hydrate($incoming, $model, $context = null) : string;
}
interface ContextualHydrator
{
public function hydrateWithContext($incoming, $model, $context = null) : string;
}
class PlsContextHydrator implements Hydrator, ContextualHydratorExtension, ContextualHydrator
{
public function hydrate($incoming, $model, $context = null) : string
{
return sprintf("%s('%s')", __METHOD__, implode(', ', func_get_args()));
}
public function hydrateWithContext($incoming, $model, $context = null) : string
{
return $this->hydrate($incoming, $model, $context);
}
}
$hydrator = new PlsContextHydrator();
var_dump(
$hydrator->hydrate('nah', 'maybes', 'whatever')
);
preferences:
46.75 ms | 402 KiB | 5 Q