innmind / reflection
Library to build objects and extract data out of them
5.2.0
2023-09-16 16:38 UTC
Requires
- php: ~8.2
- innmind/immutable: ~4.0|~5.0
- innmind/type: ~1.0
Requires (Dev)
- innmind/black-box: ~5.1
- innmind/coding-standard: ~2.0
- phpunit/phpunit: ~10.2
- vimeo/psalm: ~5.13
README
Library to build objects and extract data out of them.
Build and inject data into an object
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'
.
Extracting data out of an object
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>>