{"id":19426030,"url":"https://github.com/stdakov/config","last_synced_at":"2025-08-24T09:40:29.812Z","repository":{"id":57059278,"uuid":"59121861","full_name":"stdakov/config","owner":"stdakov","description":null,"archived":false,"fork":false,"pushed_at":"2016-05-19T10:45:39.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-07T19:35:15.301Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/stdakov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-05-18T14:14:30.000Z","updated_at":"2016-05-18T15:12:29.000Z","dependencies_parsed_at":"2022-08-24T04:23:11.589Z","dependency_job_id":null,"html_url":"https://github.com/stdakov/config","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stdakov%2Fconfig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stdakov%2Fconfig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stdakov%2Fconfig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stdakov%2Fconfig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stdakov","download_url":"https://codeload.github.com/stdakov/config/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240605842,"owners_count":19827985,"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","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":[],"created_at":"2024-11-10T14:05:42.285Z","updated_at":"2025-02-25T05:15:31.115Z","avatar_url":"https://github.com/stdakov.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# config\nThis is powerful configuration tool to manage every configuration file.\n##Supported files:\nini,php,json\n\n##Installation\nThe preferred way to install this tool is through [composer](http://getcomposer.org/download/).\n\nEither run\n\n```\nphp composer.phar require stdakov/config:dev-master\n```\n\nor add\n\n```\n\"stdakov/config\": \"dev-master\"\n```\n\n\n##Usage\nFor example we will have 3 configuration files in config dir:\n'ini.ini'\n'php.php'\n'json.json'\n\n```php\nrequire 'vendor/autoload.php';\n\n$configFolder = 'config';\n$helpersFolder = 'helpers';\n\n$config = new \\Dakov\\Config();\n```\n\nWe can also load helper functions if we have.\n\n```php\n$config-\u003eloadHelpers($helpersFolder);\n```\n\nLets load our configurations\n\n```php\n$config-\u003eloadConfigs($configFolder);\n\nprint_r($config-\u003elistConfigs());\n\n//This is file configuration names which are loaded\n```\n\nOutput\n\n```\nArray\n(\n    [0] =\u003e ini\n    [1] =\u003e json\n    [2] =\u003e php\n)\n```\n------------------INI--Configuration-----------------------\n```php\n\nprint_r($config-\u003eload('ini')-\u003eget()-\u003evalue());\nprint_r($config-\u003eload('ini')-\u003eget('database')-\u003evalue());\ntry {\n    print_r($config-\u003eload('ini')-\u003eget('server')-\u003evalue());\n} catch (\\Exception $e) {\n    var_dump($e-\u003egetMessage());\n}\n\ntry {\n    print_r($config-\u003eload('app')-\u003eget('server')-\u003evalue());\n} catch (\\Exception $e) {\n    var_dump($e-\u003egetMessage());\n}\n\n$config-\u003eload('ini')-\u003eget('database')-\u003evalue()['DB_HOST'] == $config-\u003eload('ini')-\u003eget('database')-\u003eget('DB_HOST')-\u003evalue();\n```\n\nWill output\n\n```\nArray\n(\n    [database] =\u003e Array\n        (\n            [DB_HOST] =\u003e localhost\n            [DB_DATABASE] =\u003e test\n            [DB_USERNAME] =\u003e root\n            [DB_PASSWORD] =\u003e test\n        )\n\n    [admin authentication] =\u003e Array\n        (\n            [ADMIN_AUTH] =\u003e 1\n            [ADMIN_TABLE] =\u003e admin\n        )\n\n    [upload] =\u003e Array\n        (\n            [tmp_dir] =\u003e /tmp\n            [upload_dir] =\u003e /public/storage\n        )\n\n)\nArray\n(\n    [DB_HOST] =\u003e localhost\n    [DB_DATABASE] =\u003e test\n    [DB_USERNAME] =\u003e root\n    [DB_PASSWORD] =\u003e test\n)\nstring(21) \"Missing option:server\"\nstring(25) \"Missing Configuration:app\"\n```\n------------------JSON--Configuration-----------------------\n```php\nprint_r($config-\u003eload('json')-\u003eget()-\u003evalue());\nprint_r($config-\u003eload('json')-\u003eget('name')-\u003evalue());\n```\n\nWill output\n\n```\nArray\n(\n    [name] =\u003e stuff\n    [components] =\u003e Array\n        (\n            [Version] =\u003e Array\n                (\n                    [versions] =\u003e 1\n                )\n\n            [Source] =\u003e Array\n                (\n                    [ip] =\u003e 0.0.0.1\n                )\n\n            [Empty] =\u003e Array\n                (\n                )\n\n        )\n\n)\nstuff\n```\n\n------------------PHP--Configuration-----------------------\n\n```php\nprint_r($config-\u003eload('php')-\u003eget()-\u003evalue());\nprint_r($config-\u003eload('php')-\u003eget('test')-\u003evalue());\n```\n\nWill output\n\n```\nArray\n(\n    [test] =\u003e Array\n        (\n            [show] =\u003e this is test\n        )\n\n)\nArray\n(\n    [show] =\u003e this is test\n)\n```\n\n------------------Custom Configuration-------------------------\n\n```php\n$configData = [\n    'user'     =\u003e 'username',\n    'password' =\u003e 'password'\n];\n\n$config-\u003eset($configData, 'custom');\nprint_r($config-\u003eload('custom')-\u003eget()-\u003evalue());\nprint_r($config-\u003eload('custom')-\u003eget('user')-\u003evalue());\n\n```\n\nWill output\n\n```\nArray\n(\n    [user] =\u003e username\n    [password] =\u003e password\n)\nusername\n-------------------------------------------\n```\n\n\n-------------------Custom dir-INI-----------------------\n\n```php\n\n$customConfigPath = 'config/new/ini2.ini';\n$config-\u003eregisterConfig($customConfigPath);\nprint_r($config-\u003eload('ini2')-\u003eget()-\u003evalue());\nprint_r($config-\u003eload('ini2')-\u003eget('database')-\u003evalue());\n```\n\nWill output\n\n```\nArray\n(\n    [database] =\u003e Array\n        (\n            [DB_HOST] =\u003e localhost\n            [DB_DATABASE] =\u003e test\n            [DB_USERNAME] =\u003e root\n            [DB_PASSWORD] =\u003e test\n        )\n\n    [admin authentication] =\u003e Array\n        (\n            [ADMIN_AUTH] =\u003e 1\n            [ADMIN_TABLE] =\u003e admin\n        )\n\n    [upload] =\u003e Array\n        (\n            [tmp_dir] =\u003e /tmp\n            [upload_dir] =\u003e /public/storage\n        )\n\n)\nArray\n(\n    [DB_HOST] =\u003e localhost\n    [DB_DATABASE] =\u003e test\n    [DB_USERNAME] =\u003e root\n    [DB_PASSWORD] =\u003e test\n)\nstring(21) \"Missing option:server\"\nstring(26) \"Missing Configuration:app2\"\n\n```\n\n-------------------Custom dir-INI-with custom name----------------------\n\n```php\n$customConfigPath = 'config/new/ini2.ini';\n$config-\u003eregisterConfig($customConfigPath, 'myIni');\nprint_r($config-\u003eload('myIni')-\u003eget()-\u003evalue());\nprint_r($config-\u003eload('myIni')-\u003eget('database')-\u003evalue());\n```\n\nWill output\n\n```\nArray\n(\n    [database] =\u003e Array\n        (\n            [DB_HOST] =\u003e localhost\n            [DB_DATABASE] =\u003e test\n            [DB_USERNAME] =\u003e root\n            [DB_PASSWORD] =\u003e test\n        )\n\n    [admin authentication] =\u003e Array\n        (\n            [ADMIN_AUTH] =\u003e 1\n            [ADMIN_TABLE] =\u003e admin\n        )\n\n    [upload] =\u003e Array\n        (\n            [tmp_dir] =\u003e /tmp\n            [upload_dir] =\u003e /public/storage\n        )\n\n)\nArray\n(\n    [DB_HOST] =\u003e localhost\n    [DB_DATABASE] =\u003e test\n    [DB_USERNAME] =\u003e root\n    [DB_PASSWORD] =\u003e test\n)\nstring(21) \"Missing option:server\"\nstring(21) \"Missing option:server\"\n\n```\n\n\nFor working examples see the tests/example.php\n\n##TODO\n1.Implement xml files\n2.Add functionality $config-\u003eload('ini2')-\u003eget('database.host')-\u003evalue();\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstdakov%2Fconfig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstdakov%2Fconfig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstdakov%2Fconfig/lists"}