• KrISS
  • Items
  • View item
  • Feeds
  • Folders
  • Items
  • Plugins
  • Stars
  • Add new item
  • View item
  • Edit item
  • Remove item
      • 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
      KrISS feed: 2026-04-230.01362681388855