filips123 / config-writer
Lightweight configuration writer for PHP
Fund package maintenance!
Tidelift
Open Collective
Patreon
Ko Fi
Liberapay
donorbox.org/filips
buymeacoff.ee/filips
beerpay.io/filips123
tippin.me/@123filips123
Requires
- php: >= 5.5.9
Requires (Dev)
- phpunit/phpunit: ~4.8 || ~5.7 || ~6.5 || ~7.5
- squizlabs/php_codesniffer: ^3.0
README
Lightweight configuration writer for PHP.
Installation
Requirements
PHP Config Writer requires PHP 5.5.9 or higher. Also, the config directory needs to be writable by web server in order to save config file.
Using Composer
The reccomended way to install ConfigWriter is with Composer, dependency manager for PHP.
You should just require filips123/config-writer
in your project.
composer require filips123/config-writer:^2.0
You would only need to include autoloader and namespace in your script.
<?php use ConfigWriter\Config; require 'vendor/autoload.php'; $config = new Config;
Manually Installation
Alternatively, you could download files from GitHub and then manually include them in your script.
You whould need to include all files and namespace in your script.
<?php use ConfigWriter\Config; require 'src/Exceptions/UnsupportedFormatException.php'; require 'src/Exceptions/WriteException.php'; require 'src/ConfigInterface.php'; require 'src/AbstractConfig.php'; require 'src/Config.php'; require 'src/Record.php'; require 'src/Writers/WriterInterface.php'; require 'src/Writers/PhpWriter.php'; $config = new Config;
Usage
Making the configuration
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; );
Adding records
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');
Adding sections
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');
Saving configuration
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.
Versioning
This project uses SemVer for versioning. For the versions available, see the tags on this repository.
License
This project is licensed under the MIT license. See the LICENSE
file for details.