{"id":15356696,"url":"https://github.com/filips123/configwriter","last_synced_at":"2026-02-25T15:06:27.229Z","repository":{"id":62504666,"uuid":"49884501","full_name":"filips123/ConfigWriter","owner":"filips123","description":"Lightweight configuration writer for PHP","archived":false,"fork":false,"pushed_at":"2020-01-23T20:59:13.000Z","size":41,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"v2","last_synced_at":"2025-05-03T06:19:27.294Z","etag":null,"topics":["config","configuration","microphp","php","settings","unframework"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/filips123.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":null,"tidelift":"packagist/filips123/config-writer","open_collective":"filips123","patreon":"filips","ko_fi":"filips","liberapay":"filips","custom":["https://donorbox.org/filips","https://buymeacoff.ee/filips","https://beerpay.io/filips123","https://tippin.me/@123filips123"]}},"created_at":"2016-01-18T15:08:33.000Z","updated_at":"2024-07-10T17:12:46.000Z","dependencies_parsed_at":"2022-11-02T10:01:17.731Z","dependency_job_id":null,"html_url":"https://github.com/filips123/ConfigWriter","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/filips123/ConfigWriter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filips123%2FConfigWriter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filips123%2FConfigWriter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filips123%2FConfigWriter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filips123%2FConfigWriter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/filips123","download_url":"https://codeload.github.com/filips123/ConfigWriter/tar.gz/refs/heads/v2","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filips123%2FConfigWriter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281534346,"owners_count":26518012,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["config","configuration","microphp","php","settings","unframework"],"created_at":"2024-10-01T12:29:38.367Z","updated_at":"2025-10-29T00:15:18.899Z","avatar_url":"https://github.com/filips123.png","language":"PHP","readme":"PHP Config Writer\r\n=================\r\n\r\n[![Latest Stable Version][icon-stable-version]][link-packagist]\r\n[![Latest Untable Version][icon-unstable-version]][link-packagist]\r\n[![Total Downloads][icon-downloads]][link-packagist]\r\n[![License][icon-license]][link-license]\r\n[![PHP][icon-php]][link-php]\r\n\r\n[![Linux Build Status][icon-travis]][link-travis]\r\n[![Windows Build Status][icon-appveyor]][link-appveyor]\r\n[![Code Coverage][icon-coverage]][link-coverage]\r\n[![Code Quality][icon-quality]][link-quality]\r\n\r\nLightweight configuration writer for PHP.\r\n\r\n## Installation\r\n\r\n### Requirements\r\n\r\nPHP Config Writer requires *[PHP][link-php] 5.5.9* or higher.\r\nAlso, the config directory needs to be writable by web server in order to save config file.\r\n\r\n### Using Composer\r\n\r\nThe reccomended way to install ConfigWriter is with [Composer][link-composer], dependency manager for PHP.\r\n\r\nYou should just require `filips123/config-writer` in your project.\r\n\r\n```bash\r\ncomposer require filips123/config-writer:^2.0\r\n```\r\n\r\nYou would only need to include autoloader and namespace in your script.\r\n\r\n```php\r\n\u003c?php\r\n\r\nuse ConfigWriter\\Config;\r\n\r\nrequire 'vendor/autoload.php';\r\n\r\n$config = new Config;\r\n```\r\n\r\n### Manually Installation\r\n\r\nAlternatively, you could download files from GitHub and then manually include them in your script.\r\n\r\nYou whould need to include all files and namespace in your script.\r\n\r\n```php\r\n\u003c?php\r\n\r\nuse ConfigWriter\\Config;\r\n\r\nrequire 'src/Exceptions/UnsupportedFormatException.php';\r\nrequire 'src/Exceptions/WriteException.php';\r\nrequire 'src/ConfigInterface.php';\r\nrequire 'src/AbstractConfig.php';\r\nrequire 'src/Config.php';\r\nrequire 'src/Record.php';\r\nrequire 'src/Writers/WriterInterface.php';\r\nrequire 'src/Writers/PhpWriter.php';\r\n\r\n$config = new Config;\r\n```\r\n\r\n## Usage\r\n\r\n### Making the configuration\r\n\r\nConfiguration making is possible using `ConfigWriter\\Config` class.\r\n\r\n```php\r\n$config = new Config;\r\n```\r\n\r\nIt accepts two parameters, data and comment, and both are optional.\r\nData parameter contains pre-set data for configuration and comment contains additional comment (or code) on top of the configuration file.\r\n\r\n```php\r\n$config = new Config(\r\n    [\r\n        'username' =\u003e 'user',\r\n        'password' =\u003e 'pass',\r\n    ],\r\n    \u003c\u003c\u003cEOD\r\n/**\r\n * The configuration file.\r\n *\r\n * It contains configuration data.\r\n */\r\nEOD;\r\n);\r\n```\r\n\r\n### Adding records\r\n\r\nRecords can be added using `ConfigWriter\\Config::addRecord()` method.\r\n\r\n```php\r\n$config-\u003eaddRecord('application', 'ConfigWriter');\r\n```\r\n\r\nThey can also have comments, which will be generated in documentation.\r\n\r\n```php\r\n$config-\u003eaddRecord('application', 'ConfigWriter', 'Application name');\r\n```\r\n\r\n### Adding sections\r\n\r\nSections visually and functionally separate multiple records. They can be added using `ConfigWriter\\Config::addSection()` method.\r\n\r\n```php\r\n$database = $config-\u003eaddSection('database', [], 'Database settings');\r\n\r\n$database-\u003eaddRecord('host', 'localhost', 'Database host');\r\n$database-\u003eaddRecord('port', '3306', 'Database port');\r\n```\r\n\r\nThey can also have pre-set data using second parameter.\r\n\r\n```php\r\n$config-\u003eaddSection(\r\n    'database',\r\n    [\r\n        'host' =\u003e 'localhost',\r\n        'port' =\u003e '3306',\r\n    ],\r\n    'Database settings');\r\n```\r\n\r\n### Saving configuration\r\n\r\nYou can save configuration using `ConfigWriter\\Config::toString()`  or `ConfigWriter\\Config::toFile()`.\r\n\r\nWhen saving to string, configuration writer is required, and when saving to file, writer will be automatically determined.\r\n\r\n```php\r\n$config-\u003etoString(new ConfigWriter\\Writers\\PhpWriter);\r\n$config-\u003etoFile('config.php');\r\n```\r\n\r\nWriters can also have specific options for writing.\r\n\r\n```php\r\n$config-\u003etoFile('config.php', new ConfigWriter\\Writers\\PhpWriter, ['indentation' =\u003e '\t']);\r\n```\r\n\r\nThe only supported writer is for PHP array, but more writers will be added later.\r\n\r\n## Versioning\r\nThis project uses [SemVer][link-semver] for versioning. For the versions available, see the [tags on this repository][link-tags].\r\n\r\n## License\r\nThis project is licensed under the MIT license. See the [`LICENSE`][link-license-file] file for details.\r\n\r\n[icon-stable-version]: https://img.shields.io/packagist/v/filips123/config-writer.svg?style=flat-square\u0026label=Latest+Stable+Version\r\n[icon-unstable-version]: https://img.shields.io/packagist/vpre/filips123/config-writer.svg?style=flat-square\u0026label=Latest+Unstable+Version\r\n[icon-downloads]: https://img.shields.io/packagist/dt/filips123/config-writer.svg?style=flat-square\u0026label=Downloads\r\n[icon-license]: https://img.shields.io/packagist/l/filips123/config-writer.svg?style=flat-square\u0026label=License\r\n[icon-php]: https://img.shields.io/packagist/php-v/filips123/config-writer.svg?style=flat-square\u0026label=PHP\r\n[icon-travis]: https://img.shields.io/travis/com/filips123/ConfigWriter.svg?style=flat-square\u0026label=Linux+Build+Status\r\n[icon-appveyor]: https://img.shields.io/appveyor/ci/filips123/ConfigWriter.svg?style=flat-square\u0026label=Windows+Build+Status\r\n[icon-coverage]: https://img.shields.io/scrutinizer/coverage/g/filips123/ConfigWriter.svg?style=flat-square\u0026label=Code+Coverage\r\n[icon-quality]: https://img.shields.io/scrutinizer/g/filips123/ConfigWriter.svg?style=flat-square\u0026label=Code+Quality\r\n\r\n[link-packagist]: https://packagist.org/packages/filips123/config-writer/\r\n[link-license]: https://choosealicense.com/licenses/mit/\r\n[link-php]: https://php.net/\r\n[link-composer]: https://getcomposer.org/\r\n[link-travis]: https://travis-ci.com/filips123/ConfigWriter/\r\n[link-appveyor]: https://ci.appveyor.com/project/filips123/configwriter/\r\n[link-coverage]: https://scrutinizer-ci.com/g/filips123/ConfigWriter/code-structure/\r\n[link-quality]: https://scrutinizer-ci.com/g/filips123/ConfigWriter/\r\n[link-semver]: https://semver.org/\r\n[link-tags]: https://github.com/filips123/ConfigWriter/tags/\r\n[link-license-file]: https://github.com/filips123/ConfigWriter/blob/master/LICENSE\r\n\r\n","funding_links":["https://tidelift.com/funding/github/packagist/filips123/config-writer","https://opencollective.com/filips123","https://patreon.com/filips","https://ko-fi.com/filips","https://liberapay.com/filips","https://donorbox.org/filips","https://buymeacoff.ee/filips","https://beerpay.io/filips123","https://tippin.me/@123filips123"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffilips123%2Fconfigwriter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffilips123%2Fconfigwriter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffilips123%2Fconfigwriter/lists"}