A parser for TOML written in PHP. Currently supports 100% of the TOML spec: dates, multiline arrays, key groups - the lot (including all of the more minor restrictions such as same-type arrays and key group override rules).
- PHP 5.3
- Composer
Use Composer to install the Toml package. Package details can be found on Packagist.org.
Add the following to your composer.json
and run composer update
.
"require": {
//...
"jamesmoss/toml": "dev-master"
}
You can use this lib without Composer but you'll need to provide your own PSR-0 compatible autoloader. Really, you should just use Composer.
Toml\Parser
has two static methods fromString
and fromFile
, which are self explanatory. Both return an associative array. If your TOML doc can't be parsed an Exception
will be thrown with a useful error message.
use Toml\Parser;
// Load directly from a string
$toml = Parser::fromString('name = "James Moss"');
var_dump($toml['name']); // outputs 'James Moss'.
// Load from a file instead
$toml = Parser::fromFile(__DIR__ . '/config.toml');
There is 100% test coverage at the moment. If you'd like to run the tests yourself, use the following:
$ composer update
$ phpunit
The TOML spec is changing often as it's in its infancy; if you spot something I've missed fork this repo, create a new branch and submit a pull request. Make sure any features you add are covered by unit tests.
- Better documentation and docblocks
- More semantic exceptions to be thrown, standardise the error message format.