dschoenbauer / dot-notation
Given a complicated data structure, this library allows easy and safe access to data via dot notation. This library is a compilation of other Dot Notation libraries, taking the best feature from each.
1.2.1
2017-05-03 16:13 UTC
Requires
- php: >=5.6.0
Requires (Dev)
- phpunit/phpunit: ^5.6
- satooshi/php-coveralls: dev-master
This package is not auto-updated.
Last update: 2024-11-09 00:00:07 UTC
README
Purpose
Simplifies access to large array structures
Installation
composer require dschoenbauer/dot-notation
Testing
./vendor/bin/phpunit tests
Example
use DSchoenbauer\DotNotation\ArrayDotNotation;
$mongoConnection = [
'mongo' => [
'default' => [ 'user' => 'username', 'password' => 's3cr3t' ]
]
];
$config = new ArrayDotNotation($mongoConnection);
--- or ---
$config = ArrayDotNotation::with($mongoConnection);
GET
// Get plain value
$user = $config->get('mongo.default.user');
/*
$user = 'username';
*/
// Get array value
$mongoDefault = $config->get('mongo.default');
/*
$mongoDefault = ['user' => 'username', 'password' => 's3cr3t'];
*/
SET
$configDump = $config->set('mongo.numbers', [2, 3, 5, 7, 11])->getData();
/*
$configDump = [
'mongo' => [
'default' => [ 'user' => 'username', 'password' => 's3cr3t' ],
'numbers' => [2, 3, 5, 7, 11]
],
'title' => 'Dot Notation'
];
*/
MERGE
$configDump = $config->merge('mongo.default', ['user' => 'otherUser','active' => true])->getData();
/*
$configDump = [
'mongo' => [
'default' => [ 'user' => 'otherUser', 'password' => 's3cr3t','active' => true ]
],
'title' => 'Dot Notation'
];
*/
REMOVE
$configDump = $config->remove('mongo.default.user')->getData();
/*
$configDump = [
'mongo' => [
'default' => [ 'password' => 's3cr3t' ]
],
'title' => 'Dot Notation'
];
*/
NOTATION TYPE
// Tired of dots? Change it.
$user = $config->setNotationType(',')->get('mongo,default,user');
/*
$user = 'username';
*/
WITH
//Functional fluent fun
$user = ArrayDotNotation::with($mongoConnection)->get('mongo.default.user');
/*
$user = 'username';
*/
HAS
// Validates that the dot notation path is present in the data.
$isPresent = $config->has('mongo,default,user');
/*
$isPresent = true;
*/