NEON: Nette Object Notation
Introduction
NEON is a human-readable data serialization language. It is commonly used for configuration files, but could be used in many applications where data is being stored
NEON is very similar to YAML.The main difference is that the NEON supports "entities" (so can be used e.g. to parse phpDoc annotations) and tab characters for indentation. NEON syntax is a little simpler and the parsing is faster.
Documentation can be found on the website.
NEON language
Try NEON in sandbox!
Example of NEON code:
# my web application config
php:
date.timezone: Europe/Prague
zlib.output_compression: yes # use gzip
database:
driver: mysql
username: root
password: beruska92
users:
- Dave
- Kryten
- Rimmer
Installation
The recommended way to install is via Composer:
composer require nette/neon
It requires PHP version 5.6 and supports PHP up to 7.2. The dev-master version requires PHP 7.0.
Usage
Nette\Neon\Neon
is a static class for encoding and decoding NEON files.
Neon::encode()
returns $value encoded into NEON. Flags accepts Neon::BLOCK which formats NEON in multiline format.
use Nette\Neon\Neon;
$neon = Neon::encode($value); // Returns $value encoded in NEON
$neon = Neon::encode($value, Neon::BLOCK); // Returns formatted $value encoded in NEON
Neon::decode()
converts given NEON to PHP value:
$value = Neon::decode('hello: world'); // Returns an array ['hello' => 'world']
Both methods throw Nette\Neon\Exception
on error.
Editors plugins
- NetBeans IDE has built-in support
- PhpStorm
- Visual Studio Code
- Emacs