Working with NEON

NEON is a human-friendly data serialization language. It is used in Nette for configuration files. Nette\Neon\Neon is a static class for working with NEON.

Get to know the NEON format and try it out.

All examples assume the following alias is defined:

use Nette\Neon\Neon;

Installation

Download and install the package using Composer:

composer require nette/neon

You can check for syntax errors in *.neon files using the neon-lint console command:

vendor/bin/neon-lint <path>

encode (mixed $value, bool $blockMode=false, string $indentation="\t")string

Returns $value converted to NEON. You can pass true to the $blockMode parameter to create multiline output. The $indentation parameter specifies the characters used for indentation (default is tab).

Neon::encode($value); // Returns $value converted to NEON
Neon::encode($value, true); // Returns $value converted to multiline NEON

The encode() method throws Nette\Neon\Exception on error.

try {
	$neon = Neon::encode($value);
} catch (Nette\Neon\Exception $e) {
	// Exception handling
}

decode (string $neon): mixed

Converts the given NEON string to a PHP value.

Returns scalars, arrays, dates as DateTimeImmutable objects, and entities as Nette\Neon\Entity objects.

Neon::decode('hello: world'); // Returns an array ['hello' => 'world']

The decode() method throws Nette\Neon\Exception on error.

try {
	$value = Neon::decode($neon);
} catch (Nette\Neon\Exception $e) {
	// Exception handling
}

decodeFile (string $file)mixed

Converts the contents of a file from NEON to PHP and removes any BOM.

Neon::decodeFile('config.neon');

The decodeFile() method throws Nette\Neon\Exception on error.

version: 3.4 2.x