PHP code example of nandan108 / prop-path
1. Go to this page and download the library: Download nandan108/prop-path library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
nandan108 / prop-path example snippets
use Nandan108\PropPath\PropPath;
$roots = ['dto' => ['user' => ['email' => '[email protected] ']]];
$extractor = PropPath::extract('$dto.user.email', $roots);
// $email === '[email protected] '
$data = [
'dto' => [
'user' => [
'name' => 'Jane',
'email' => '[email protected] ',
'addresses' => [
'home' => ['city' => 'Geneva', 'zip' => '1201'],
'office' => ['city' => 'Vernier', 'zip' => '1214', 'phone' => '1234'],
],
],
],
'context' => ['request' => ['search' => 'foo']],
];
$extractor = PropPath::compile('$dto.user.addresses.home.city');
$homeCity = $extractor($data); // 'Geneva'
// direct extraction:
PropPath::extract('$dto.user["homeCity" => addresses.home.city]', $data);
// ['homeCity' => 'Geneva']
PropPath::extract('user[
"zips" => addresses[*[city => zip]]@~,
"phone" => [**phone ?? "no phone"],
"fax" => [**fax ?? "no fax"],
$context.request.@search
]', $data);
// $result === [
// 'zips' => ['Geneva' => '1201', 'Vernier' => 1214],
// 'phone' => '1234',
// 'fax' => 'no fax',
// 'search' => 'foo',
// ];
$roots = ['root' => ['path' => ['a', 'b', 'c']]];
$result = PropPath::extract(['foo' => 'path.0', ['path.1', ['path.2']]], $roots);
// ['foo' => 'a', ['b', ['c']]]
PropPath::compile(string|array $paths, ...): \Closure
PropPath::extract(string|array $paths, array $roots, ...): mixed
PropPath::clearCache(): void
PropPath::boot(): void