Library to build objects and extract data out of them.
use Innmind\Reflection\Instanciate;
use Innmind\Immutable\{
Map,
Maybe,
};
final class Foo
{
private int $foo;
private mixed $bar;
public function __construct(string $foo)
{
$this->foo = $foo;
}
}
$object = (new Instanciate)(Foo::class, Map::of(
['foo', 42],
['bar', 'baz'],
)); // Maybe<Foo>
This code will create a new Foo
object and assign the property foo
to 42
and bar
to 'baz'
.
use Innmind\Reflection\Extract;
use Innmind\Immutable\{
Set,
Maybe,
Map,
};
$properties = (new Extract)($myObject, Set::of('foo', 'bar', 'baz')); // Maybe<Map<non-empty-string, mixed>>