GitHub - yosymfony/toml: A PHP parser for TOML
source link: https://github.com/yosymfony/toml
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
TOML parser for PHP
A PHP parser for TOML compatible with TOML v0.4.0.
Support:
Installation
Requires PHP >= 7.1.
Use Composer to install this package:
composer require yosymfony/toml
Usage
You can parse an inline TOML string or from a file:
To parse an inline TOML string:
use Yosymfony\Toml\Toml; $array = Toml::Parse('key = [1,2,3]'); print_r($array);
To parse a TOML file:
$array = Toml::ParseFile('example.toml'); print_r($array);
Additionally, methods parse
and parseFile
accept a second argument called
resultAsObject
to return the result as an object based on stdClass
.
$object = Toml::Parse('key = [1,2,3]', true);
TomlBuilder
You can create a TOML string with TomlBuilder. TomlBuilder uses a fluent interface for more readable code:
use Yosymfony\Toml\TomlBuilder; $tb = new TomlBuilder(); $result = $tb->addComment('Toml file') ->addTable('data.string') ->addValue('name', "Toml", 'This is your name') ->addValue('newline', "This string has a \n new line character.") ->addValue('winPath', "C:\\Users\\nodejs\\templates") ->addValue('literal', '@<\i\c*\s*>') // literals starts with '@'. ->addValue('unicode', 'unicode character: ' . json_decode('"\u03B4"')) ->addTable('data.bool') ->addValue('t', true) ->addValue('f', false) ->addTable('data.integer') ->addValue('positive', 25, 'Comment inline.') ->addValue('negative', -25) ->addTable('data.float') ->addValue('positive', 25.25) ->addValue('negative', -25.25) ->addTable('data.datetime') ->addValue('datetime', new \Datetime()) ->addComment('Related to arrays') ->addTable('data.array') ->addValue('simple', array(1,2,3)) ->addValue('multiple', array( array(1,2), array('abc', 'def'), array(1.1, 1.2), array(true, false), array( new \Datetime()) )) ->addComment('Array of tables') ->addArrayOfTable('fruit') // Row ->addValue('name', 'apple') ->addArrayOfTable('fruit.variety') ->addValue('name', 'red delicious') ->addArrayOfTable('fruit.variety') ->addValue('name', 'granny smith') ->addArrayOfTable('fruit') // Row ->addValue('name', 'banana') ->addArrayOfTable('fruit.variety') ->addValue('name', 'plantain') ->getTomlString(); // Generate the TOML string
The result:
#Toml file
[data.string]
name = "Toml" #This is your name
newline = "This string has a \n new line character."
winPath = "C:\\Users\\nodejs\\templates"
literal = '<\i\c*\s*>'
unicode = "unicode character: δ"
[data.bool]
t = true
f = false
[data.integer]
positive = 25 #Comment inline.
negative = -25
[data.float]
positive = 25.25
negative = -25.25
[data.datetime]
datetime = 2013-06-10T21:12:48Z
#Related to arrays
[data.array]
simple = [1, 2, 3]
multiple = [[1, 2], ["abc", "def"], [1.1, 1.2], [true, false], [2013-06-10T21:12:48Z]]
# Array of tables
[[fruit]]
name = "apple"
[[fruit.variety]]
name = "red delicious"
[[fruit.variety]]
name = "granny smith"
[[fruit]]
name = "banana"
[[fruit.variety]]
name = "plantain"
Deprecated method
The following method will be eliminated in version 2.0.0
- [TomlBuilder] addArrayTables
Contributing
When Contributing code to this library, you must follow its coding standards. Toml follows PSR-2 coding style. To ensure the CS, you can use the CLI tool PHP-CS-Fixer.
Unit tests
You can run the unit tests with the following command:
$ cd toml $ composer test
License
This library is open-sourced software licensed under the MIT license.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK