vicary / object-path
Fork of peridot-php/object-path. A string syntax to fetch values from array and object hierarchies
Installs: 13
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 5
pkg:composer/vicary/object-path
Requires
- php: >=5.4.0
Requires (Dev)
This package is not auto-updated.
Last update: 2025-09-25 08:42:22 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/