Download the PHP package slifin/edn without Composer
On this page you can find all versions of the php package slifin/edn. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Please rate this library. Is it a good library?
Informations about the package edn
Extensible Data Notation
Parser for the edn format. In PHP.
The parser internally relies on Phlexy for lexing.
Usage
Parsing
To parse edn, just use the parse
function:
$edn = file_get_contents('examples/sample.edn');
$data = igorw\edn\parse($edn);
print_r($data);
You can also define custom tag handlers and pass them as a second argument to
parse
:
use igorw\edn;
class Person {
public $firstName;
public $lastName;
function __construct($firstName, $lastName) {
$this->firstName = $firstName;
$this->lastName = $lastName;
}
}
$edn = '#myapp/Person {:first "Fred" :last "Mertz"}';
$data = edn\parse($edn, [
'myapp/Person' => function ($node) {
return new Person(
$node[edn\keyword('first')],
$node[edn\keyword('last')]
);
},
]);
// [new Person('Fred', 'Mertz')]
Encoding
If you want to take an in-memory data structure and encode it as edn, you can
use the encode
function:
use igorw\edn;
$person = new edn\Map();
$person[edn\keyword('name')] = 'igorw';
$list = new edn\LinkedList([
edn\symbol('foo'),
edn\symbol('bar'),
edn\symbol('baz'),
edn\keyword('qux'),
1.0,
$person,
]);
$edn = edn\encode([$list]);
// (foo bar baz :qux 1.0 {:name "igorw"})
Tests
This library runs against the shaunxcode/edn-tests suite.
All versions of edn with dependencies
PHP Build Version
Package Version
The package slifin/edn contains the following files
Loading the files please wait ....