vicary / object-path
Fork of peridot-php/object-path. A string syntax to fetch values from array and object hierarchies
1.1.0
2016-07-26 13:59 UTC
Requires
- php: >=5.4.0
Requires (Dev)
This package is not auto-updated.
Last update: 2025-03-27 06:08:53 UTC
README
Allows traversal of objects and arrays with a simple string syntax. Extracted from Peridot's matcher library: Leo.
Usage
use Peridot\ObjectPath\ObjectPath; // Works with nested arrays, objects, or a mixture of both. $data = [ 'name' => 'Brian', 'hobbies' => [ 'reading', 'programming', 'lion taming' ], 'address' => new stdClass() [ 'street' => '1234 Lane', 'zip' => '12345' ] ]; $data['address']->street = '1234 Lane'; $data['address']->zip = 12345; // Wraps the value with ObjectPath $path = new ObjectPath($data); // Get the value directly $reading = $path->{'hobbies[0]'}; $zip = $path->{'address[zip]'}; // Sets the value $path->{'address->street'} = '12345 Street'; // Removes the property unset($path->{'hobbies[2]'}); // backward compatible with peridot-php/object-path $reading = $path->get('hobbies[0]'); $zip = $path->get('address[zip]'); // the result of get() is an ObjectPathValue instance $value = $reading->getPropertyValue();
Tests
$ composer install
$ vendor/bin/peridot specs/