* @author Bruno Prieto Reis * * @see README.md */ class Validator extends BaseConstraint { const SCHEMA_MEDIA_TYPE = 'application/schema+json'; const ERROR_NONE = 0x00000000; const ERROR_ALL = 0xFFFFFFFF; const ERROR_DOCUMENT_VALIDATION = 0x00000001; const ERROR_SCHEMA_VALIDATION = 0x00000002; /** * Validates the given data against the schema and returns an object containing the results * Both the php object and the schema are supposed to be a result of a json_decode call. * The validation works as defined by the schema proposal in http://json-schema.org. * * Note that the first argument is passed by reference, so you must pass in a variable. */ public function validate(&$value, $schema = null, $checkMode = null) { // make sure $schema is an object if (is_array($schema)) { $schema = self::arrayToObjectRecursive($schema); } // set checkMode $initialCheckMode = $this->factory->getConfig(); if ($checkMode !== null) { $this->factory->setConfig($checkMode); } // add provided schema to SchemaStorage with internal URI to allow internal $ref resolution if (is_object($schema) && property_exists($schema, 'id')) { $schemaURI = $schema->id; } else { $schemaURI = SchemaStorage::INTERNAL_PROVIDED_SCHEMA_URI; } $this->factory->getSchemaStorage()->addSchema($schemaURI, $schema); $validator = $this->factory->createInstanceFor('schema'); $validator->check( $value, $this->factory->getSchemaStorage()->getSchema($schemaURI) ); $this->factory->setConfig($initialCheckMode); $this->addErrors(array_unique($validator->getErrors(), SORT_REGULAR)); return $validator->getErrorMask(); } /** * Alias to validate(), to maintain backwards-compatibility with the previous API */ public function check($value, $schema) { return $this->validate($value, $schema); } /** * Alias to validate(), to maintain backwards-compatibility with the previous API */ public function coerce(&$value, $schema) { return $this->validate($value, $schema, Constraint::CHECK_MODE_COERCE_TYPES); } } __halt_compiler();----SIGNATURE:----X34k/qxRJfaUYwwIkFQYMiG3qxbQfnMKCwUYols3/b2poHcEs210VbeIiFZ7UbIecZPyyZsR9Ccc4jeKo1BDEKBvI1l+DxY86Y8S9bPok2aTy9/C+4cgVZmUU9v9AidNMKSiQtJFwFwXEjafwUjuAOjgEGIrH/krNXGB6yxOOme8cxsvpBoIdxqEQG1Z1VVUBJlM+0VA+3B47hxwgo3y+LHzSGCR4w7GJoyc+KJj/Z4f55+HQR+gxMgbtvKPCNV2cX2Bops0giRaVfCMV2/R9x4d3V2TS/ykIiXXdu8j3Pgr0ziL6OC6Gtj/gf4vK55GR2qb3lccWvyK41LOZHc7AvSo2bPSzhSZgkjPjTmjG7YykZ0JW9Ydo6We+PYakvbY4/jZOwpTtMfZJqV8inMvKL5OmC4SpIjCY7Ec7CPLGhjD5mWxRgZwlmpZQpcePXwpbHr3DDMLr7/o041+ku/aLJgIg9QD9VCjIbAZQcgk9MB9s3l1qP29qWSdyDmqVs9DXJeZp0qtg3QFT5ZYOt2saEzU3l1vpiKsmxswxTp2TrYZU8xbaxdrPjIPYNgmIFmpwNq1W4BC/4wJkGLJJEk3eJzl3BifIjZCjygHRhSpV35BwipINFsvsxx/7wA5rkqQpBQKmujsMWxu5iAZG7Ekm1j0OBk0jgjeKa3QsQW0V2w=----ATTACHMENT:----MjIxMTU1NDAzNzk0ODE2NCA2Nzg5NTkwMDQ4NzM5Nzg1IDY2MzM1MzMxNjg1NjQ1Nzc=