mimic
mimic copied to clipboard
Dead simple functional library for object prototyping, data hydration and data exposition
Mimic
Dead simple functional library for object prototyping, data hydration and data exposition.
Installation
composer require keyvanakbary/mimic
Usage
namespace Domain;
use mimic as m;
class ComputerScientist {
private $name;
private $surname;
public function __construct($name, $surname) {
$this->name = $name;
$this->surname = $surname;
}
public function rocks() {
return $this->name . ' ' . $this->surname . ' rocks!';
}
}
assert(m\prototype('Domain\ComputerScientist') instanceof Domain\ComputerScientist);
m\hydrate('Domain\ComputerScientist', array(
'name' => 'John',
'surname' => 'McCarthy'
))->rocks(); //John McCarthy rocks!
assert(m\expose(new Domain\ComputerScientist('Grace', 'Hopper')) == array(
'name' => 'Grace',
'surname' => 'Hopper'
));