evilfreelancer / yaml-php
Small PHP library for importing and exporting with validation of YAML configuration files.
0.4.1
2018-03-07 12:34 UTC
Requires
- php: >=7.0
- ext-yaml: *
Requires (Dev)
- phpunit/phpunit: ^6.0
README
Small PHP library for importing and exporting with validation of YAML configuration files.
composer require evilfreelancer/yaml-php
For correct work you need install YAML extension of PHP interpreter.
Available methods
read
- Read YAML from file or URL (autodetect)add
- Add without replace array of parametersset
- Add with replace array of parametersvalidate
- Check array of parameters in memory by validation templateget
- Return array of prepared parameterssave
- Export parameters in YAML format to file on filesystemshow
- Return YAML in plain text format
How to use
More examples here.
Basic example of usage
<?php require_once __DIR__ . '/../vendor/autoload.php'; use \EvilFreelancer\Yaml\Yaml; // Object for work with YAML $yaml = new Yaml(); // Simple array from which need build YAML $array = [ 'string' => 'zzz', 'integer' => 42, 'bool' => true, ]; // Generate YAML and print to stdOut $yaml_text = $yaml->set($array)->show(); echo $yaml_text;
Output is:
--- string: zzz integer: 42 bool: true ...
Read YAML from file
$yaml_array = $yaml->read('example.yaml')->get(); print_r($yaml_array);
Output is:
Array
(
[string] => zzz
[integer] => 42
[bool] => 1
)
How to append array
$array = [ 'string' => 'zzz', 'integer' => 42, 'bool' => true, ]; $append = [ 'array_simple' => [ 'item1', 'item2', 'item3' ], 'array_md' => [ 'string1' => 'text', 'integer' => 42, 'bool' => true ] ]; // Set array, then append additional array and show to stdOut echo $yaml ->set($array) ->add($append) ->show();
Output is:
--- string: zzz integer: 42 bool: true array_simple: - item1 - item2 - item3 array_md: string1: text integer: 42 bool: true ...
How to use validation
// Schema by which we need make validation $schema = [ 'string' => Types::STRING, 'integer' => Types::INT, 'bool' => Types::BOOL, 'array_simple' => Types::ARRAY, 'array_md' => [ 'string1' => Types::STRING, 'integer' => Types::INT, 'bool' => Types::BOOL ] ]; // Array from which we need make YAML $array = [ 'string' => 'zzz', 'integer' => 42, 'bool' => true, 'array_simple' => [ 'item1', 'item2', 'item3' ], 'array_md' => [ 'string1' => 'text', 'integer' => 42, 'bool' => true ] ]; // Set array and execute validation procedure echo $yaml ->set($array) ->validate($schema) ->show();
In result you should saw YAML, if something wrong will be error with detailed "Stack Trace".