- 97hcRAGCWRKg
- <time>1685102400</time><short>26/5/23</short><long>Friday, May 26, 2023 2:00:00 PM</long>
- unread
- 5 : KrISS json
- tontof
- Je vous ai dit que j'avais exploré la programmation fonctionnelle avec <a href="http://tontof.net/?2023/05/19/15/00/00-4-kriss-aaaa-middleware">KrISS aaaa : middleware</a> et il y a quelques années j'ai voulu testé cette même approche pour l'utilisation de schémas json <a href="https://json-schema.org">https://json-schema.org</a><br />
<br />
Le résultat final est plutôt chouette :<br />
<pre><br />
tests suite: nb tests nb files<br />
draft3: 520/520 35/35<br />
draft4: 735/735 38/38<br />
draft6: 995/995 48/48<br />
draft7: 1286/1286 57/57<br />
draft2019-09: 1571/1651 59/68<br />
draft2020-12: 1579/1677 58/68<br />
draft-next: 1623/1724 58/68<br />
</pre><br />
C'était il y a quelques temps et j'ai dû faire 2/3 modifications pour valider les mises à jours des tests fournis par <a href="https://github.com/json-schema-org/JSON-Schema-Test-Suite">https://github.com/json-schema-org/JSON-Schema-Test-Suite</a> pour continuer à valider les premiers drafts comme à l'époque où j'avais codé ça.<br />
<br />
S'il n'y a qu'un seul fichier à regarder c'est la validation des URI/IRI à partir de la RFC<br />
<a href="https://github.com/tontof/kriss_json/blob/main/schema/core/inc/rfc.php">https://github.com/tontof/kriss_json/blob/main/schema/core/inc/rfc.php</a><br />
<br />
Les validations proposées par PHP ne fonctionnaient pas pour tous les tests, j'ai donc dû lire un peu les RFC pour arriver à la validation de tous les tests. C'est à faire au moins une fois dans sa vie...<br />
<br />
Pour valider un schéma json, il suffit d'inclure le fichier "json.php" et d'appeler la fonction "json_schema"<br />
<code><span style="color: #000000"><br />
<span style="color: #0000BB"><?php <br />
</span><span style="color: #007700">include_once(</span><span style="color: #0000BB">__DIR__ </span><span style="color: #007700">. </span><span style="color: #DD0000">'/schema/json.php'</span><span style="color: #007700">);<br />
<br />
</span><span style="color: #0000BB">$json </span><span style="color: #007700">= </span><span style="color: #DD0000">'https://json-schema.org/learn/examples/address.schema.json'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">$address </span><span style="color: #007700">= </span><span style="color: #0000BB">file_get_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">$json</span><span style="color: #007700">);<br />
<br />
</span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #DD0000">'<br />
{<br />
"locality":"locality",<br />
"region":"region"<br />
}<br />
'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">json_schema</span><span style="color: #007700">(</span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$address</span><span style="color: #007700">), </span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)));<br />
<br />
</span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #DD0000">'<br />
{<br />
"locality":"locality",<br />
"region":"region",<br />
"country-name":"country-name"<br />
}<br />
'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">json_schema</span><span style="color: #007700">(</span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$address</span><span style="color: #007700">), </span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)));<br />
<br />
</span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #DD0000">'<br />
{<br />
"locality":"locality",<br />
"region":"region",<br />
"country-name":"country-name",<br />
"post-office-box":"post-office-box"<br />
}<br />
'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">json_schema</span><span style="color: #007700">(</span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$address</span><span style="color: #007700">), </span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)));<br />
<br />
</span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #DD0000">'<br />
{<br />
"locality":"locality",<br />
"region":"region",<br />
"country-name":"country-name",<br />
"post-office-box":"post-office-box",<br />
"street-address":"street-address"<br />
}<br />
'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">json_schema</span><span style="color: #007700">(</span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$address</span><span style="color: #007700">), </span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)));<br />
</span><span style="color: #0000BB">?></span><br />
</span><br />
</code>Ce qui donne comme attendu :<br />
<pre><br />
bool(false)<br />
bool(true)<br />
bool(false)<br />
bool(true)<br />
</pre><br />
En pratique, je vous invite à utiliser une approche plus classique <a href="https://json-schema.org/implementations.html#validator-php">https://json-schema.org/implementations.html#validator-php</a> mais <a href="https://github.com/tontof/kriss_json">KrISS json</a> reste intéressant de par son approche fonctionnelle
- https://tontof.net/index.php?2023/05/26/14/00/00-5-kriss-json
- Je vous ai dit que j'avais exploré la programmation fonctionnelle avec <a href="http://tontof.net/?2023/05/19/15/00/00-4-kriss-aaaa-middleware">KrISS aaaa : middleware</a> et il y a quelques années j'ai voulu testé cette même approche pour l'utilisation de schémas json <a href="https://json-schema.org">https://json-schema.org</a><br />
<br />
Le résultat final est plutôt chouette :<br />
<pre><br />
tests suite: nb tests nb files<br />
draft3: 520/520 35/35<br />
draft4: 735/735 38/38<br />
draft6: 995/995 48/48<br />
draft7: 1286/1286 57/57<br />
draft2019-09: 1571/1651 59/68<br />
draft2020-12: 1579/1677 58/68<br />
draft-next: 1623/1724 58/68<br />
</pre><br />
C'était il y a quelques temps et j'ai dû faire 2/3 modifications pour valider les mises à jours des tests fournis par <a href="https://github.com/json-schema-org/JSON-Schema-Test-Suite">https://github.com/json-schema-org/JSON-Schema-Test-Suite</a> pour continuer à valider les premiers drafts comme à l'époque où j'avais codé ça.<br />
<br />
S'il n'y a qu'un seul fichier à regarder c'est la validation des URI/IRI à partir de la RFC<br />
<a href="https://github.com/tontof/kriss_json/blob/main/schema/core/inc/rfc.php">https://github.com/tontof/kriss_json/blob/main/schema/core/inc/rfc.php</a><br />
<br />
Les validations proposées par PHP ne fonctionnaient pas pour tous les tests, j'ai donc dû lire un peu les RFC pour arriver à la validation de tous les tests. C'est à faire au moins une fois dans sa vie...<br />
<br />
Pour valider un schéma json, il suffit d'inclure le fichier "json.php" et d'appeler la fonction "json_schema"<br />
<code><span style="color: #000000"><br />
<span style="color: #0000BB"><?php <br />
</span><span style="color: #007700">include_once(</span><span style="color: #0000BB">__DIR__ </span><span style="color: #007700">. </span><span style="color: #DD0000">'/schema/json.php'</span><span style="color: #007700">);<br />
<br />
</span><span style="color: #0000BB">$json </span><span style="color: #007700">= </span><span style="color: #DD0000">'https://json-schema.org/learn/examples/address.schema.json'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">$address </span><span style="color: #007700">= </span><span style="color: #0000BB">file_get_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">$json</span><span style="color: #007700">);<br />
<br />
</span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #DD0000">'<br />
{<br />
"locality":"locality",<br />
"region":"region"<br />
}<br />
'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">json_schema</span><span style="color: #007700">(</span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$address</span><span style="color: #007700">), </span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)));<br />
<br />
</span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #DD0000">'<br />
{<br />
"locality":"locality",<br />
"region":"region",<br />
"country-name":"country-name"<br />
}<br />
'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">json_schema</span><span style="color: #007700">(</span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$address</span><span style="color: #007700">), </span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)));<br />
<br />
</span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #DD0000">'<br />
{<br />
"locality":"locality",<br />
"region":"region",<br />
"country-name":"country-name",<br />
"post-office-box":"post-office-box"<br />
}<br />
'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">json_schema</span><span style="color: #007700">(</span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$address</span><span style="color: #007700">), </span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)));<br />
<br />
</span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #DD0000">'<br />
{<br />
"locality":"locality",<br />
"region":"region",<br />
"country-name":"country-name",<br />
"post-office-box":"post-office-box",<br />
"street-address":"street-address"<br />
}<br />
'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">json_schema</span><span style="color: #007700">(</span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$address</span><span style="color: #007700">), </span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)));<br />
</span><span style="color: #0000BB">?></span><br />
</span><br />
</code>Ce qui donne comme attendu :<br />
<pre><br />
bool(false)<br />
bool(true)<br />
bool(false)<br />
bool(true)<br />
</pre><br />
En pratique, je vous invite à utiliser une approche plus classique <a href="https://json-schema.org/implementations.html#validator-php">https://json-schema.org/implementations.html#validator-php</a> mais <a href="https://github.com/tontof/kriss_json">KrISS json</a> reste intéressant de par son approche fonctionnelle
- <name>title</name><content>5 : KrISS json</content><attributes> <name>link</name><content>https://tontof.net/index.php?2023/05/26/14/00/00-5-kriss-json</content><attributes> <name>description</name><content>Je vous ai dit que j'avais exploré la programmation fonctionnelle avec <a href="http://tontof.net/?2023/05/19/15/00/00-4-kriss-aaaa-middleware">KrISS aaaa : middleware</a> et il y a quelques années j'ai voulu testé cette même approche pour l'utilisation de schémas json <a href="https://json-schema.org">https://json-schema.org</a><br />
<br />
Le résultat final est plutôt chouette :<br />
<pre><br />
tests suite: nb tests nb files<br />
draft3: 520/520 35/35<br />
draft4: 735/735 38/38<br />
draft6: 995/995 48/48<br />
draft7: 1286/1286 57/57<br />
draft2019-09: 1571/1651 59/68<br />
draft2020-12: 1579/1677 58/68<br />
draft-next: 1623/1724 58/68<br />
</pre><br />
C'était il y a quelques temps et j'ai dû faire 2/3 modifications pour valider les mises à jours des tests fournis par <a href="https://github.com/json-schema-org/JSON-Schema-Test-Suite">https://github.com/json-schema-org/JSON-Schema-Test-Suite</a> pour continuer à valider les premiers drafts comme à l'époque où j'avais codé ça.<br />
<br />
S'il n'y a qu'un seul fichier à regarder c'est la validation des URI/IRI à partir de la RFC<br />
<a href="https://github.com/tontof/kriss_json/blob/main/schema/core/inc/rfc.php">https://github.com/tontof/kriss_json/blob/main/schema/core/inc/rfc.php</a><br />
<br />
Les validations proposées par PHP ne fonctionnaient pas pour tous les tests, j'ai donc dû lire un peu les RFC pour arriver à la validation de tous les tests. C'est à faire au moins une fois dans sa vie...<br />
<br />
Pour valider un schéma json, il suffit d'inclure le fichier "json.php" et d'appeler la fonction "json_schema"<br />
<code><span style="color: #000000"><br />
<span style="color: #0000BB"><?php <br />
</span><span style="color: #007700">include_once(</span><span style="color: #0000BB">__DIR__ </span><span style="color: #007700">. </span><span style="color: #DD0000">'/schema/json.php'</span><span style="color: #007700">);<br />
<br />
</span><span style="color: #0000BB">$json </span><span style="color: #007700">= </span><span style="color: #DD0000">'https://json-schema.org/learn/examples/address.schema.json'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">$address </span><span style="color: #007700">= </span><span style="color: #0000BB">file_get_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">$json</span><span style="color: #007700">);<br />
<br />
</span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #DD0000">'<br />
{<br />
"locality":"locality",<br />
"region":"region"<br />
}<br />
'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">json_schema</span><span style="color: #007700">(</span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$address</span><span style="color: #007700">), </span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)));<br />
<br />
</span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #DD0000">'<br />
{<br />
"locality":"locality",<br />
"region":"region",<br />
"country-name":"country-name"<br />
}<br />
'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">json_schema</span><span style="color: #007700">(</span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$address</span><span style="color: #007700">), </span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)));<br />
<br />
</span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #DD0000">'<br />
{<br />
"locality":"locality",<br />
"region":"region",<br />
"country-name":"country-name",<br />
"post-office-box":"post-office-box"<br />
}<br />
'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">json_schema</span><span style="color: #007700">(</span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$address</span><span style="color: #007700">), </span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)));<br />
<br />
</span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #DD0000">'<br />
{<br />
"locality":"locality",<br />
"region":"region",<br />
"country-name":"country-name",<br />
"post-office-box":"post-office-box",<br />
"street-address":"street-address"<br />
}<br />
'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">json_schema</span><span style="color: #007700">(</span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$address</span><span style="color: #007700">), </span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)));<br />
</span><span style="color: #0000BB">?></span><br />
</span><br />
</code>Ce qui donne comme attendu :<br />
<pre><br />
bool(false)<br />
bool(true)<br />
bool(false)<br />
bool(true)<br />
</pre><br />
En pratique, je vous invite à utiliser une approche plus classique <a href="https://json-schema.org/implementations.html#validator-php">https://json-schema.org/implementations.html#validator-php</a> mais <a href="https://github.com/tontof/kriss_json">KrISS json</a> reste intéressant de par son approche fonctionnelle</content><attributes> <name>dc:date</name><content>2023-05-26T14:00:00+02:00</content><attributes> <name>dc:language</name><content>fr</content><attributes> <name>dc:creator</name><content>tontof</content><attributes> <name>dc:subject</name><content>A simple and smart (or stupid) blog</content><attributes> <name>content:encoded</name><content>Je vous ai dit que j'avais exploré la programmation fonctionnelle avec <a href="http://tontof.net/?2023/05/19/15/00/00-4-kriss-aaaa-middleware">KrISS aaaa : middleware</a> et il y a quelques années j'ai voulu testé cette même approche pour l'utilisation de schémas json <a href="https://json-schema.org">https://json-schema.org</a><br />
<br />
Le résultat final est plutôt chouette :<br />
<pre><br />
tests suite: nb tests nb files<br />
draft3: 520/520 35/35<br />
draft4: 735/735 38/38<br />
draft6: 995/995 48/48<br />
draft7: 1286/1286 57/57<br />
draft2019-09: 1571/1651 59/68<br />
draft2020-12: 1579/1677 58/68<br />
draft-next: 1623/1724 58/68<br />
</pre><br />
C'était il y a quelques temps et j'ai dû faire 2/3 modifications pour valider les mises à jours des tests fournis par <a href="https://github.com/json-schema-org/JSON-Schema-Test-Suite">https://github.com/json-schema-org/JSON-Schema-Test-Suite</a> pour continuer à valider les premiers drafts comme à l'époque où j'avais codé ça.<br />
<br />
S'il n'y a qu'un seul fichier à regarder c'est la validation des URI/IRI à partir de la RFC<br />
<a href="https://github.com/tontof/kriss_json/blob/main/schema/core/inc/rfc.php">https://github.com/tontof/kriss_json/blob/main/schema/core/inc/rfc.php</a><br />
<br />
Les validations proposées par PHP ne fonctionnaient pas pour tous les tests, j'ai donc dû lire un peu les RFC pour arriver à la validation de tous les tests. C'est à faire au moins une fois dans sa vie...<br />
<br />
Pour valider un schéma json, il suffit d'inclure le fichier "json.php" et d'appeler la fonction "json_schema"<br />
<code><span style="color: #000000"><br />
<span style="color: #0000BB"><?php <br />
</span><span style="color: #007700">include_once(</span><span style="color: #0000BB">__DIR__ </span><span style="color: #007700">. </span><span style="color: #DD0000">'/schema/json.php'</span><span style="color: #007700">);<br />
<br />
</span><span style="color: #0000BB">$json </span><span style="color: #007700">= </span><span style="color: #DD0000">'https://json-schema.org/learn/examples/address.schema.json'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">$address </span><span style="color: #007700">= </span><span style="color: #0000BB">file_get_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">$json</span><span style="color: #007700">);<br />
<br />
</span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #DD0000">'<br />
{<br />
"locality":"locality",<br />
"region":"region"<br />
}<br />
'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">json_schema</span><span style="color: #007700">(</span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$address</span><span style="color: #007700">), </span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)));<br />
<br />
</span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #DD0000">'<br />
{<br />
"locality":"locality",<br />
"region":"region",<br />
"country-name":"country-name"<br />
}<br />
'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">json_schema</span><span style="color: #007700">(</span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$address</span><span style="color: #007700">), </span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)));<br />
<br />
</span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #DD0000">'<br />
{<br />
"locality":"locality",<br />
"region":"region",<br />
"country-name":"country-name",<br />
"post-office-box":"post-office-box"<br />
}<br />
'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">json_schema</span><span style="color: #007700">(</span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$address</span><span style="color: #007700">), </span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)));<br />
<br />
</span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #DD0000">'<br />
{<br />
"locality":"locality",<br />
"region":"region",<br />
"country-name":"country-name",<br />
"post-office-box":"post-office-box",<br />
"street-address":"street-address"<br />
}<br />
'</span><span style="color: #007700">;<br />
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">json_schema</span><span style="color: #007700">(</span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$address</span><span style="color: #007700">), </span><span style="color: #0000BB">json_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)));<br />
</span><span style="color: #0000BB">?></span><br />
</span><br />
</code>Ce qui donne comme attendu :<br />
<pre><br />
bool(false)<br />
bool(true)<br />
bool(false)<br />
bool(true)<br />
</pre><br />
En pratique, je vous invite à utiliser une approche plus classique <a href="https://json-schema.org/implementations.html#validator-php">https://json-schema.org/implementations.html#validator-php</a> mais <a href="https://github.com/tontof/kriss_json">KrISS json</a> reste intéressant de par son approche fonctionnelle</content><attributes>
- false