giann / trunk
A safe way to query data from a PHP array inspired by SwiftyJSON
Installs: 62 872
Dependents: 1
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=7.4
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.2
README
A safe way to query data from a PHP array inspired by SwiftyJSON
$trunk = new Trunk($data); $this->assertTrue($trunk['astring'] instanceof Trunk); $this->assertEquals($trunk['astring']->string(), 'hello world'); $this->assertEquals($trunk['anint']->int(), 12); $this->assertEquals($trunk['alist']->listValue()[3]->string(), 'hello'); $this->assertEquals($trunk['amap']['hello']->string(), 'world'); $this->assertEquals($trunk['amap']['hello']['doesnexists']->data, null); $this->assertTrue($trunk['anobject']->ofClass(Person::class) instanceof Person); $this->assertEquals($trunk['anobject']->ofClass(Person::class)->name, 'joe'); $this->assertTrue($trunk['listofobject']->listOfClass(Person::class)[0] instanceof Person); $this->assertEquals($trunk['listofobject']->listOfClass(Person::class)[0]->name, 'joe'); $this->assertTrue($trunk['mapofobject']->mapOfClass(Person::class)['joe'] instanceof Person); $this->assertEquals($trunk['mapofobject']->mapOfClass(Person::class)['joe']->name, 'joe'); $this->assertTrue( $trunk['transformlist'] ->listOfClass( Person::class, fn ($el) => new Person($el) )[0] instanceof Person ); $this->assertTrue( $trunk['transformmap'] ->mapOfClass( Person::class, fn ($el) => new Person($el) )['joe'] instanceof Person );