mayoturis/properties-ini

Getting and setting configuration values in ini (or java .properties) files

1.0 2015-11-16 21:30 UTC

This package is not auto-updated.

Last update: 2024-05-11 16:45:27 UTC


README

Allows to get and set configuration variables stored in ini-like (or java .properties) files

Installation with composer

composer require mayoturis/properties-ini

or

{
    "require": {
        "mayoturis/properties-ini": "1.0"
    }
}

Usage

####Basic Example

$config = Mayoturis\Properties\RepositoryFactory::make('path_to_configuration_file');
$config->get('DB_PASSWORD');
$config->set('DB_STRICT_MODE', true);

File format

Reader can load these types of lines

DB_HOST=localhost           // loaded as string 'localhost'
DB_USERNAME="user"          // string 'user'
DB_PASSWORD = 'password'    // string 'password'
DB_STRICT_MODE=true         // boolean true

FLOAT_VALUE=1.1             // float 1.1
INT_VALUE=1                 // int 1
NULL_VALUE=null             // null

# comment                   // won't be loaded
; comment                   // won't be loaded
//comment                   // won't be loaded

Comment has to be at the start of the line

Example of file loading

name="John"
surname=Doe
age=25
salary=12.5
married=false
wife=null

Will be loaded as

[
  "name"    => "John",
  "surname" => "Doe",
  "age"     => 25,
  "salary"  => 12.5
  "married" => false,
  "wife"    => null
]

Saving configuration

When saving the configuration, file format will be respected. Therefore empty lines and comments will preserved. New values (NOT only changed) will be placed at the end of the file

Further examples

Get all configuration values
$config = Mayoturis\Properties\RepositoryFactory::make('path_to_configuration_file');
$configurationArray = $config->all();
Setting value
// file .env

name=John
surname="Doe"

# In 2015
age=25
// file index.php

$config = Mayoturis\Properties\RepositoryFactory::make(__DIR__ . '/.env');
$config->set('name', 'Johny');
$config->set('age', 35);
// file .env after

name=Johny
surname="Doe"

# In 2015
age=35
Save all configuration values
$configArray = [
  "username" => "user",
  "password" => "password"
];

$config = Mayoturis\Properties\RepositoryFactory::make('path_to_configuration_file');
$config->setAll($configArray);

Notice: setAll function will override all configuration values. Previous values will be lost.