EDIT: The methods isValid() and validate() actually expect both the $data and the $schema parameter to be json. This should perhaps be stated in readme.md!? The example below works with ``` $result = Jsv4::validate(json_decode($json), json_decode($schema)); var_dump($result); $result = Jsv4::isValid(json_decode($json), json_decode($schema)); var_dump($result); ``` This might be related to issue #18: The following will always return true: ``` <?php require_once(__DIR__ . '/../src/Lib/jsv4/jsv4.php'); $schema = '{ "$schema": "http://json-schema.org/draft-04/schema#", "id": "http://jsonschema.net/x", "type": "object", "properties": { "objectID": { "id": "http://jsonschema.net/x", "type": "string" } }, "required": [ "objectID" ] }'; $json = '{'; $result = Jsv4::validate($json, $schema); var_dump($result); $result = Jsv4::isValid($json, $schema); var_dump($result); ?> ``` What it returns: ``` object(Jsv4)#1 (6) { ["data":"Jsv4":private]=> string(1) "{" ["schema":"Jsv4":private]=> string(242) "{ "$schema": "http://json-schema.org/draft-04/schema#", "id": "http://jsonschema.net/x", "type": "object", "properties": { "objectID": { "id": "http://jsonschema.net/x", "type": "string" } }, "required": [ "objectID" ] }" ["firstErrorOnly":"Jsv4":private]=> bool(false) ["coerce":"Jsv4":private]=> bool(false) ["valid"]=> bool(true) ["errors"]=> array(0) { } } bool(true) ``` note that $json is not even a valid json, left alone a json matching to the schema. Tested on PHP 5.6.12 (cli) (built: Aug 7 2015 11:29:31)
Activity
killua-eu commentedon Nov 17, 2016
have the same problem