for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Uvinum\Joiner;
use Uvinum\Joiner\Manipulator\Manipulator;
use Uvinum\Joiner\Serializer\Serializer;
final class Joiner
{
/** @var Serializer */
private $serializer;
/** @var Manipulator */
private $manipulator;
private $base;
public function __construct(Serializer $serializer, Manipulator $manipulator)
$this->serializer = $serializer;
$this->manipulator = $manipulator;
$this->base = null;
}
public function join($arg)
$this->base = $arg;
return $this;
public function append($key, $arg)
$serializedArg = $this->serializer->serialize($arg);
$this->manipulator->append($key, $serializedArg);
public function filter(... $key)
array_map(function ($key_to_remove) {
$this->manipulator->filter($key_to_remove);
}, $key);
public function execute()
$serializedBase = $this->serializer->serialize($this->base);
return $this->manipulator->process($serializedBase);