{"id":13624154,"url":"https://github.com/yosymfony/toml","last_synced_at":"2025-04-04T11:12:37.178Z","repository":{"id":8425091,"uuid":"10012688","full_name":"yosymfony/toml","owner":"yosymfony","description":"A PHP parser for TOML","archived":false,"fork":false,"pushed_at":"2020-08-08T20:48:54.000Z","size":244,"stargazers_count":192,"open_issues_count":5,"forks_count":28,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-05-17T04:01:46.083Z","etag":null,"topics":["configuration","php","toml"],"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/yosymfony.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2013-05-12T11:21:50.000Z","updated_at":"2024-04-17T05:57:02.000Z","dependencies_parsed_at":"2022-09-12T00:11:58.457Z","dependency_job_id":null,"html_url":"https://github.com/yosymfony/toml","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yosymfony%2Ftoml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yosymfony%2Ftoml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yosymfony%2Ftoml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yosymfony%2Ftoml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yosymfony","download_url":"https://codeload.github.com/yosymfony/toml/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247166168,"owners_count":20894654,"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":["configuration","php","toml"],"created_at":"2024-08-01T21:01:39.477Z","updated_at":"2025-04-04T11:12:37.161Z","avatar_url":"https://github.com/yosymfony.png","language":"PHP","funding_links":[],"categories":["Configuration","配置 Configuration","PHP","类库","Table of Contents"],"sub_categories":["Serverless","无服务器的 Serverless","文本处理","Library"],"readme":"TOML parser for PHP\n===================\n\nA PHP parser for [TOML](https://github.com/toml-lang/toml) compatible with [TOML v0.4.0](https://github.com/toml-lang/toml/releases/tag/v0.4.0).\n\n[![Build Status](https://travis-ci.org/yosymfony/toml.png?branch=master)](https://travis-ci.org/yosymfony/toml)\n[![Latest Stable Version](https://poser.pugx.org/yosymfony/toml/v/stable.png)](https://packagist.org/packages/yosymfony/toml)\n[![Total Downloads](https://poser.pugx.org/yosymfony/toml/downloads.png)](https://packagist.org/packages/yosymfony/toml)\n\nSupport:\n\n[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/yosymfony/Toml?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\n\nInstallation\n------------\n**Requires PHP \u003e= 7.1.**\n\nUse [Composer](http://getcomposer.org/) to install this package:\n\n```bash\ncomposer require yosymfony/toml\n```\n\nUsage\n-----\nYou can parse an inline TOML string or from a file:\n\nTo parse an inline TOML string:\n\n```php\nuse Yosymfony\\Toml\\Toml;\n\n$array = Toml::Parse('key = [1,2,3]');\n\nprint_r($array);\n```\n\nTo parse a TOML file:\n\n```php\n$array = Toml::ParseFile('example.toml');\n\nprint_r($array);\n```\n\nAdditionally, methods `parse` and `parseFile` accept a second argument called\n`resultAsObject` to return the result as an object based on `stdClass`.\n\n```php\n$object = Toml::Parse('key = [1,2,3]', true);\n```\n\n### TomlBuilder\nYou can create a TOML string with TomlBuilder. TomlBuilder uses a *fluent interface* for more readable code:\n\n```php\n    use Yosymfony\\Toml\\TomlBuilder;\n\n    $tb = new TomlBuilder();\n\n    $result = $tb-\u003eaddComment('Toml file')\n        -\u003eaddTable('data.string')\n        -\u003eaddValue('name', \"Toml\", 'This is your name')\n        -\u003eaddValue('newline', \"This string has a \\n new line character.\")\n        -\u003eaddValue('winPath', \"C:\\\\Users\\\\nodejs\\\\templates\")\n        -\u003eaddValue('literal', '@\u003c\\i\\c*\\s*\u003e') // literals starts with '@'.\n        -\u003eaddValue('unicode', 'unicode character: ' . json_decode('\"\\u03B4\"'))\n\n        -\u003eaddTable('data.bool')\n        -\u003eaddValue('t', true)\n        -\u003eaddValue('f', false)\n\n        -\u003eaddTable('data.integer')\n        -\u003eaddValue('positive', 25, 'Comment inline.')\n        -\u003eaddValue('negative', -25)\n\n        -\u003eaddTable('data.float')\n        -\u003eaddValue('positive', 25.25)\n        -\u003eaddValue('negative', -25.25)\n\n        -\u003eaddTable('data.datetime')\n        -\u003eaddValue('datetime', new \\Datetime())\n\n        -\u003eaddComment('Related to arrays')\n\n        -\u003eaddTable('data.array')\n        -\u003eaddValue('simple', array(1,2,3))\n        -\u003eaddValue('multiple', array(\n            array(1,2),\n            array('abc', 'def'),\n            array(1.1, 1.2),\n            array(true, false),\n            array( new \\Datetime()) ))\n\n        -\u003eaddComment('Array of tables')\n\n        -\u003eaddArrayOfTable('fruit')                            // Row\n            -\u003eaddValue('name', 'apple')\n            -\u003eaddArrayOfTable('fruit.variety')\n                -\u003eaddValue('name', 'red delicious')\n            -\u003eaddArrayOfTable('fruit.variety')\n                -\u003eaddValue('name', 'granny smith')\n        -\u003eaddArrayOfTable('fruit')                            // Row\n            -\u003eaddValue('name', 'banana')\n            -\u003eaddArrayOfTable('fruit.variety')\n                -\u003eaddValue('name', 'plantain')\n        -\u003egetTomlString();    // Generate the TOML string\n```\nThe result:\n\n```toml\n#Toml file\n\n[data.string]\nname = \"Toml\" #This is your name\nnewline = \"This string has a \\n new line character.\"\nwinPath = \"C:\\\\Users\\\\nodejs\\\\templates\"\nliteral = '\u003c\\i\\c*\\s*\u003e'\nunicode = \"unicode character: δ\"\n\n[data.bool]\nt = true\nf = false\n\n[data.integer]\npositive = 25 #Comment inline.\nnegative = -25\n\n[data.float]\npositive = 25.25\nnegative = -25.25\n\n[data.datetime]\ndatetime = 2013-06-10T21:12:48Z\n\n#Related to arrays\n\n[data.array]\nsimple = [1, 2, 3]\nmultiple = [[1, 2], [\"abc\", \"def\"], [1.1, 1.2], [true, false], [2013-06-10T21:12:48Z]]\n\n# Array of tables\n\n[[fruit]]\nname = \"apple\"\n\n[[fruit.variety]]\nname = \"red delicious\"\n\n[[fruit.variety]]\nname = \"granny smith\"\n\n[[fruit]]\nname = \"banana\"\n\n[[fruit.variety]]\nname = \"plantain\"\n```\n#### Limitations\nThe `TomlBuilder` class is an utility to get Toml strings that has the following limitations:\n* Only admits `basic strings` and `literal strings`.\n\nDeprecated method\n-----------------\nThe following method will be eliminated in version 2.0.0\n* [TomlBuilder] **addArrayTables**\n\nContributing\n------------\nWhen Contributing code to this library, you must follow its coding standards.\nToml follows [PSR-2 coding style](https://www.php-fig.org/psr/psr-2/). To ensure\nthe CS, you can use the CLI tool [PHP-CS-Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer).\n\nUnit tests\n----------\nYou can run the unit tests with the following command:\n\n```bash\n$ cd toml\n$ composer test\n```\n\n## License\n\nThis library is open-sourced software licensed under the\n[MIT license](http://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyosymfony%2Ftoml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyosymfony%2Ftoml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyosymfony%2Ftoml/lists"}