OXIESEC PANEL
- Current Dir:
/
/
usr
/
share
/
php
/
JsonSchema
/
Constraints
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
π
..
-
07/20/2024 06:32:21 AM
rwxr-xr-x
π
BaseConstraint.php
3.79 KB
10/21/2017 01:15:38 PM
rw-r--r--
π
CollectionConstraint.php
6.17 KB
10/21/2017 01:15:38 PM
rw-r--r--
π
Constraint.php
6.43 KB
10/21/2017 01:15:38 PM
rw-r--r--
π
ConstraintInterface.php
1.53 KB
10/21/2017 01:15:38 PM
rw-r--r--
π
EnumConstraint.php
1.61 KB
10/21/2017 01:15:38 PM
rw-r--r--
π
Factory.php
5.65 KB
10/21/2017 01:15:38 PM
rw-r--r--
π
FormatConstraint.php
8.65 KB
10/21/2017 01:15:38 PM
rw-r--r--
π
NumberConstraint.php
3.68 KB
10/21/2017 01:15:38 PM
rw-r--r--
π
ObjectConstraint.php
7.89 KB
10/21/2017 01:15:38 PM
rw-r--r--
π
SchemaConstraint.php
3.73 KB
10/21/2017 01:15:38 PM
rw-r--r--
π
StringConstraint.php
1.94 KB
10/21/2017 01:15:38 PM
rw-r--r--
π
TypeCheck
-
07/20/2024 06:32:21 AM
rwxr-xr-x
π
TypeConstraint.php
7.79 KB
10/21/2017 01:15:38 PM
rw-r--r--
π
UndefinedConstraint.php
15.19 KB
10/21/2017 01:15:38 PM
rw-r--r--
Editing: SchemaConstraint.php
Close
<?php /* * This file is part of the JsonSchema package. * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace JsonSchema\Constraints; use JsonSchema\Entity\JsonPointer; use JsonSchema\Exception\InvalidArgumentException; use JsonSchema\Exception\InvalidSchemaException; use JsonSchema\Exception\RuntimeException; use JsonSchema\SchemaStorage; use JsonSchema\Validator; /** * The SchemaConstraint Constraints, validates an element against a given schema * * @author Robert SchΓΆnthal <seroscho@googlemail.com> * @author Bruno Prieto Reis <bruno.p.reis@gmail.com> */ class SchemaConstraint extends Constraint { const DEFAULT_SCHEMA_SPEC = 'http://json-schema.org/draft-04/schema#'; /** * {@inheritdoc} */ public function check(&$element, $schema = null, JsonPointer $path = null, $i = null) { if ($schema !== null) { // passed schema $validationSchema = $schema; } elseif ($this->getTypeCheck()->propertyExists($element, $this->inlineSchemaProperty)) { // inline schema $validationSchema = $this->getTypeCheck()->propertyGet($element, $this->inlineSchemaProperty); } else { throw new InvalidArgumentException('no schema found to verify against'); } // cast array schemas to object if (is_array($validationSchema)) { $validationSchema = BaseConstraint::arrayToObjectRecursive($validationSchema); } // validate schema against whatever is defined in $validationSchema->$schema. If no // schema is defined, assume self::DEFAULT_SCHEMA_SPEC (currently draft-04). if ($this->factory->getConfig(self::CHECK_MODE_VALIDATE_SCHEMA)) { if (!$this->getTypeCheck()->isObject($validationSchema)) { throw new RuntimeException('Cannot validate the schema of a non-object'); } if ($this->getTypeCheck()->propertyExists($validationSchema, '$schema')) { $schemaSpec = $this->getTypeCheck()->propertyGet($validationSchema, '$schema'); } else { $schemaSpec = self::DEFAULT_SCHEMA_SPEC; } // get the spec schema $schemaStorage = $this->factory->getSchemaStorage(); if (!$this->getTypeCheck()->isObject($schemaSpec)) { $schemaSpec = $schemaStorage->getSchema($schemaSpec); } // save error count, config & subtract CHECK_MODE_VALIDATE_SCHEMA $initialErrorCount = $this->numErrors(); $initialConfig = $this->factory->getConfig(); $initialContext = $this->factory->getErrorContext(); $this->factory->removeConfig(self::CHECK_MODE_VALIDATE_SCHEMA | self::CHECK_MODE_APPLY_DEFAULTS); $this->factory->addConfig(self::CHECK_MODE_TYPE_CAST); $this->factory->setErrorContext(Validator::ERROR_SCHEMA_VALIDATION); // validate schema try { $this->check($validationSchema, $schemaSpec); } catch (\Exception $e) { if ($this->factory->getConfig(self::CHECK_MODE_EXCEPTIONS)) { throw new InvalidSchemaException('Schema did not pass validation', 0, $e); } } if ($this->numErrors() > $initialErrorCount) { $this->addError($path, 'Schema is not valid', 'schema'); } // restore the initial config $this->factory->setConfig($initialConfig); $this->factory->setErrorContext($initialContext); } // validate element against $validationSchema $this->checkUndefined($element, $validationSchema, $path, $i); } }