- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 1
Usage
Configuration making is possible using ConfigWriter\Config class.
$config = new Config;It accepts two parameters, data and comment, and both are optional. Data parameter contains pre-set data for configuration and comment contains additional comment (or code) on top of the configuration file.
$config = new Config(
    [
        'username' => 'user',
        'password' => 'pass',
    ],
    <<<EOD
/**
 * The configuration file.
 *
 * It contains configuration data.
 */
EOD;
);Records can be added using ConfigWriter\Config::addRecord() method.
$config->addRecord('application', 'ConfigWriter');They can also have comments, which will be generated in documentation.
$config->addRecord('application', 'ConfigWriter', 'Application name');Sections visually and functionally separate multiple records. They can be added using ConfigWriter\Config::addSection() method.
$database = $config->addSection('database', [], 'Database settings');
$database->addRecord('host', 'localhost', 'Database host');
$database->addRecord('port', '3306', 'Database port');They can also have pre-set data using second parameter.
$config->addSection(
    'database',
    [
        'host' => 'localhost',
        'port' => '3306',
    ],
    'Database settings');You can save configuration using ConfigWriter\Config::toString()  or ConfigWriter\Config::toFile().
When saving to string, configuration writer is required, and when saving to file, writer will be automatically determined.
$config->toString(new ConfigWriter\Writers\PhpWriter);
$config->toFile('config.php');Writers can also have specific options for writing.
$config->toFile('config.php', new ConfigWriter\Writers\PhpWriter, ['indentation' => '	']);The only supported writer is for PHP array, but more writers will be added later.