Linux vps-61133.fhnet.fr 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
Apache/2.4.25 (Debian)
Server IP : 93.113.207.21 & Your IP : 216.73.216.152
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
php /
JsonSchema /
Constraints /
Delete
Unzip
Name
Size
Permission
Date
Action
CollectionConstraint.php
4.45
KB
-rw-r--r--
2016-01-25 16:43
Constraint.php
7
KB
-rw-r--r--
2016-01-25 16:43
ConstraintInterface.php
1.3
KB
-rw-r--r--
2016-01-25 16:43
EnumConstraint.php
1.31
KB
-rw-r--r--
2016-01-25 16:43
Factory.php
2.82
KB
-rw-r--r--
2016-01-25 16:43
FormatConstraint.php
6.72
KB
-rw-r--r--
2016-01-25 16:43
NumberConstraint.php
3.61
KB
-rw-r--r--
2016-01-25 16:43
ObjectConstraint.php
5.53
KB
-rw-r--r--
2016-01-25 16:43
SchemaConstraint.php
1.06
KB
-rw-r--r--
2016-01-25 16:43
StringConstraint.php
1.8
KB
-rw-r--r--
2016-01-25 16:43
TypeConstraint.php
4.15
KB
-rw-r--r--
2016-01-25 16:43
UndefinedConstraint.php
10.76
KB
-rw-r--r--
2016-01-25 16:43
Save
Rename
<?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; /** * The ObjectConstraint Constraints, validates an object against a given schema * * @author Robert Schönthal <seroscho@googlemail.com> * @author Bruno Prieto Reis <bruno.p.reis@gmail.com> */ class ObjectConstraint extends Constraint { /** * {@inheritDoc} */ function check($element, $definition = null, $path = null, $additionalProp = null, $patternProperties = null) { if ($element instanceof UndefinedConstraint) { return; } $matches = array(); if ($patternProperties) { $matches = $this->validatePatternProperties($element, $path, $patternProperties); } if ($definition) { // validate the definition properties $this->validateDefinition($element, $definition, $path); } // additional the element properties $this->validateElement($element, $matches, $definition, $path, $additionalProp); } public function validatePatternProperties($element, $path, $patternProperties) { $try = array('/','#','+','~','%'); $matches = array(); foreach ($patternProperties as $pregex => $schema) { $delimiter = '/'; // Choose delimiter. Necessary for patterns like ^/ , otherwise you get error foreach ($try as $delimiter) { if (strpos($pregex, $delimiter) === false) { // safe to use break; } } // Validate the pattern before using it to test for matches if (@preg_match($delimiter. $pregex . $delimiter, '') === false) { $this->addError($path, 'The pattern "' . $pregex . '" is invalid', 'pregex', array('pregex' => $pregex,)); continue; } foreach ($element as $i => $value) { if (preg_match($delimiter . $pregex . $delimiter, $i)) { $matches[] = $i; $this->checkUndefined($value, $schema ? : new \stdClass(), $path, $i); } } } return $matches; } /** * Validates the element properties * * @param \stdClass $element Element to validate * @param array $matches Matches from patternProperties (if any) * @param \stdClass $objectDefinition ObjectConstraint definition * @param string $path Path to test? * @param mixed $additionalProp Additional properties */ public function validateElement($element, $matches, $objectDefinition = null, $path = null, $additionalProp = null) { foreach ($element as $i => $value) { $property = $this->getProperty($element, $i, new UndefinedConstraint()); $definition = $this->getProperty($objectDefinition, $i); // no additional properties allowed if (!in_array($i, $matches) && $additionalProp === false && $this->inlineSchemaProperty !== $i && !$definition) { $this->addError($path, "The property " . $i . " is not defined and the definition does not allow additional properties", 'additionalProp'); } // additional properties defined if (!in_array($i, $matches) && $additionalProp && !$definition) { if ($additionalProp === true) { $this->checkUndefined($value, null, $path, $i); } else { $this->checkUndefined($value, $additionalProp, $path, $i); } } // property requires presence of another $require = $this->getProperty($definition, 'requires'); if ($require && !$this->getProperty($element, $require)) { $this->addError($path, "The presence of the property " . $i . " requires that " . $require . " also be present", 'requires'); } if (!$definition) { // normal property verification $this->checkUndefined($value, new \stdClass(), $path, $i); } } } /** * Validates the definition properties * * @param \stdClass $element Element to validate * @param \stdClass $objectDefinition ObjectConstraint definition * @param string $path Path? */ public function validateDefinition($element, $objectDefinition = null, $path = null) { foreach ($objectDefinition as $i => $value) { $property = $this->getProperty($element, $i, new UndefinedConstraint()); $definition = $this->getProperty($objectDefinition, $i); $this->checkUndefined($property, $definition, $path, $i); } } /** * retrieves a property from an object or array * * @param mixed $element Element to validate * @param string $property Property to retrieve * @param mixed $fallback Default value if property is not found * * @return mixed */ protected function getProperty($element, $property, $fallback = null) { if (is_array($element) /*$this->checkMode == self::CHECK_MODE_TYPE_CAST*/) { return array_key_exists($property, $element) ? $element[$property] : $fallback; } elseif (is_object($element)) { return property_exists($element, $property) ? $element->$property : $fallback; } return $fallback; } }