Skip to content
A string syntax to fetch values from array and object hierarchies
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
specs
src
.gitignore
.travis.yml
LICENSE
README.md
composer.json
peridot.php

README.md

ObjectPath Build Status

Allows traversal of objects and arrays with a simple string syntax. Extracted from Peridot's matcher library: Leo.

Usage

$data = [
  'name' => 'Brian',
  'hobbies' => [
    'reading',
    'programming',
    'lion taming'  
  ],
  'address' => [
    'street' => '1234 Lane',
    'zip' => '12345'  
  ]
];

use Peridot\ObjectPath\ObjectPath;

$path = new ObjectPath($data);
$reading = $path->get('hobbies[0]');
$zip = $path->get('address[zip]');

// the result of get() is an ObjectPathValue instance
$value = $reading->getPropertyValue();

// The syntax also works for objects and nested structures

$data = new stdClass();

$data->name = 'Brian';
$data->address = new stdClass();
$data->address->zip = '12345';

$hobby = new stdClass();
$hobby->name = 'reading';
$hobby->style = 'relaxing';
$data->hobbies = [$hobby];

$path = new ObjectPath($data);
$name = $path->get('name');
$zip = $path->get('address->zip');
$reading = $path->get('hobbies[0]->name');

Tests

$ composer install
$ vendor/bin/peridot specs/
You can’t perform that action at this time.