-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.php
More file actions
115 lines (92 loc) · 3.13 KB
/
test.php
File metadata and controls
115 lines (92 loc) · 3.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
require_once 'vendor/autoload.php';
use Toon\Toon;
use Toon\EncodeOptions;
use Toon\DecodeOptions;
// =============== 1
$data = ['name' => 'Alice', 'age' => 30];
echo Toon::encode($data) . PHP_EOL;
$toonString = "name: Alice\nage: 30";
var_dump(Toon::decode($toonString));
// =============== 2
$data = ['data' => ['metadata' => ['items' => ['id' => 1]]]];
$options = new EncodeOptions(keyFolding: 'safe');
$encoded = Toon::encode($data, $options);
echo "Encoded: \n$encoded\n";
$decodeOptions = new DecodeOptions(expandPaths: 'safe');
$decoded = Toon::decode($encoded, $decodeOptions);
echo "Decoded: \n";
var_dump($decoded);
// =============== 3
$data = ['users' => [1, 2, 3, null, true, 'text']];
$options = new EncodeOptions(delimiter: '|');
$encoded = Toon::encode($data, $options);
echo "Encoded: \n$encoded\n";
$decoded = Toon::decode($encoded);
echo "Decoded: \n";
var_dump($decoded);
// =============== 4
$data = ['employees' => [
['id' => 1, 'name' => 'Alice', 'salary' => 50000],
['id' => 2, 'name' => 'Bob', 'salary' => 60000]
]];
$encoded = Toon::encode($data);
echo "Encoded: \n$encoded\n";
$decoded = Toon::decode($encoded);
echo "Decoded: \n";
var_dump($decoded);
// =============== 5
$data = ['mixed' => [42, ['key' => 'value'], [true, false], null]];
$encoded = Toon::encode($data);
echo "Encoded: \n$encoded\n";
$decoded = Toon::decode($encoded);
echo "Decoded: \n";
var_dump($decoded);
// =============== 6
$data = ['emptyObj' => [], 'emptyArr' => [], 'nullVal' => null];
$encoded = Toon::encode($data);
echo "Encoded: \n$encoded\n";
$decoded = Toon::decode($encoded);
echo "Decoded: \n";
var_dump($decoded);
// =============== 7
$data = ['key.with.dot' => "value\nwith\\escape\""];
$encoded = Toon::encode($data);
echo "Encoded: \n$encoded\n";
$decodeOptions = new DecodeOptions(expandPaths: 'off');
$decoded = Toon::decode($encoded, $decodeOptions);
echo "Decoded: \n";
var_dump($decoded);
// =============== 8
$data = ['a' => ['b' => ['c' => ['d' => ['e' => 5]]]]];
$options = new EncodeOptions(keyFolding: 'safe', flattenDepth: 3);
$encoded = Toon::encode($data, $options);
echo "Encoded: \n$encoded\n";
$decodeOptions = new DecodeOptions(expandPaths: 'safe');
$decoded = Toon::decode($encoded, $decodeOptions);
echo "Decoded: \n";
var_dump($decoded);
// =============== 9
$data = ['matrix' => [[1, 2], [3, 4], [5, 6]]];
$encoded = Toon::encode($data);
echo "Encoded: \n$encoded\n";
$decoded = Toon::decode($encoded);
echo "Decoded: \n";
var_dump($decoded);
// =============== 10
$data = ['flags' => ['active' => true, 'deleted' => false, 'empty' => null]];
$options = new EncodeOptions(indent: 4);
$encoded = Toon::encode($data, $options);
echo "Encoded: \n$encoded\n";
$decoded = Toon::decode($encoded);
echo "Decoded: \n";
var_dump($decoded);
// =============== 11
$toonString = "users[3]{id,name}:\n 1,Alice\n 2,Bob\n 3,Extra";
$options = new DecodeOptions(strict: true);
try {
$decoded = Toon::decode($toonString, $options);
var_dump($decoded);
} catch (\Exception $e) {
echo "Error: " . $e->getMessage() . "\n";
}