Skip to content

An ini parser for inherited values through multiple configuration files

License

Notifications You must be signed in to change notification settings

Elephant418/Iniliq

Repository files navigation

Iniliq Build Status

An ini parser for inherited values through multiple configuration files

  1. Let's code
    1.1 Json Values
    1.2 Deep selectors
    1.3 File inheritance
    1.4 Appending
    1.5 Reducing
  2. How to Install
  3. How to Contribute
  4. Author & Community

Let's code

Json values

; json-values.ini
[Readme]
example = { json: yeah, is-it: [ good, great, awesome ] }
$ini = ( new \Pixel418\Iniliq\IniParser )->parse( 'json-values.ini' );
// [ 'Readme' => [ 'example' => [ 'json' => 'yeah', 'is-it' => [ 'good', 'great', 'awesome' ] ] ] ]

↑ top

Deep selectors

; deep-selectors.ini
[Readme]
example.selectors.deep = nice
$ini = ( new \Pixel418\Iniliq\IniParser )->parse( 'deep-selectors.ini' );
// [ 'Readme' => [ 'example' => [ 'selectors' => [ 'deep' => 'nice' ] ] ]
get_class( $ini );
// Pixel418\Iniliq\ArrayObject
$ini[ 'Readme.example.selectors.deep' ]
// nice
$ini[ 'Readme.example.selectors.deep' ] = 'amusing'
// [ 'Readme' => [ 'example' => [ 'selectors' => [ 'deep' => 'amusing' ] ] ]

↑ top

File inheritance

; base.ini
[Readme]
example[name] = John Doe
example[id] = 3
; file-inheritance.ini
[Readme]
example.name = file-inheritance
$ini = ( new \Pixel418\Iniliq\IniParser )->parse( [ 'base.ini', 'file-inheritance.ini' ] );
// [ 'Readme' => [ 'example' => [ 'name' => 'file-inheritance', 'id' => '3' ] ] ]

↑ top

Appending

; list.ini
[Readme]
musketeers.name[ ] = Athos
musketeers.name[ ] = Porthos
musketeers.name[ ] = "D'Artagnan"
; adding-values.ini
[Readme]
musketeers.name += [ Aramis ]
$ini = ( new \Pixel418\Iniliq\IniParser )->parse( [ 'list.ini', 'adding-values.ini' ] );
// [ 'Readme' => [ 'musketeers' => [ 'Athos', 'Porthos', 'D\'Artagnan', 'Aramis' ] ] ]

↑ top

Reducing

; list.ini
[Readme]
musketeers.name[ ] = Athos
musketeers.name[ ] = Porthos
musketeers.name[ ] = "D'Artagnan"
; removing-values.ini
[Readme]
musketeers.name -= "[ D'Artagnan ]"
$ini = ( new \Pixel418\Iniliq\IniParser )->parse( [ 'list.ini', 'removing-values.ini' ] );
// [ 'Readme' => [ 'musketeers' => [ 'Athos', 'Porthos' ] ] ]

↑ top

How to Install

If you don't have composer, you have to install it.

Add or complete the composer.json file at the root of your project, like this :

{
    "require": {
        "pixel418/iniliq": "0.3.2"
    }
}

Iniliq can now be downloaded via composer.

Lastly, to use it in your PHP, you can load the composer autoloader :

require_once( './vendor/autoload.php' );

↑ top

How to Contribute

  1. Fork the Iniliq repository
  2. Create a new branch for each feature or improvement
  3. Send a pull request from each feature branch to the develop branch

If you don't know much about pull request, you can read the Github article.

All pull requests must follow the PSR1 standard and be accompanied by passing phpunit tests.

↑ top

Author & Community

Iniliq is under the MIT License.
It is created and maintained by Thomas ZILLIOX.

↑ top

About

An ini parser for inherited values through multiple configuration files

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages