/** * Validate single property */ private function checkProperties(Validator $validator, $object, $name, $details, $myName, $errors) { $hasProperty = property_exists($object, $name); $required = isset($details->required) && $details->required; if ($hasProperty) { $errors = $validator->check($object->{$name}, $details, $myName, $errors); } elseif (!$hasProperty && $required) { $errors[$myName][] = 'is not defined'; } return $errors; }
/** * Performs validation of given element. * * @param Validator $validator Instance of Validator to perform recursive validation * @param mixed $element Element to validate against schema * @param object $schema Part of Schema that validates given element * @param string $myName Name of validated element * @param array $errors Array of currently gathered errors * @return array Currently gathered errors */ public function check(Validator $validator, $element, $schema, $myName, array $errors) { $types = $schema->type; $allResults[$myName] = array(); foreach ($types as $t) { $schema->type = $t; $result = $validator->check($element, $schema, $myName, array()); if (!count($result)) { $schema->type = $types; return $errors; } $allResults[$myName][$t] = $result[$myName]; } $schema->type = $types; return array_merge($errors, $allResults); }
/** * Validate single element from array */ private function checkArrayItems(Validator $validator, $item, $schema, $myName, $errors) { return $validator->check($item, $schema, $myName, $errors); }