Skip to content

Given a complicated data structure, 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 and incorporating them here.

dschoenbauer/dot-notation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dot Notation

Build Status Coverage Status License Downloads Version

License Downloads Version

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;
*/ 

About

Given a complicated data structure, 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 and incorporating them here.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages