for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types = 1);
namespace Mapper;
/**
* Class Kind
* @package Mapper
*/
abstract class Kind implements KindInterface {
* @var mixed
protected $data;
* @var object
private $object;
* @var Kernel
private $kernel;
* @return array
abstract protected function prepareDataKernel(): array;
* Kind constructor.
* @param object $object
public function __construct($object) {
$this->setupKernel($object)
->setObject($object);
}
* @return object
public function getObject() {
return $this->object;
* @return Kind
* @throws \Exception
public function setObject($object): Kind {
if (is_object($object)) {
$this->object = $object;
$this->getKernel()
} else {
throw new \Exception('Invalid object passed');
return $this;
* @return Kernel
protected function getKernel(): Kernel {
return $this->kernel;
* @param Kernel $kernel
private function setKernel(Kernel $kernel): Kind {
$this->kernel = $kernel;
private function setupKernel($object): Kind {
return $this->setKernel(
new Kernel(
$this->prepareDataKernel(),
$object
)
);
public function map() {
return $this->getKernel()
->map();