예제 #1
0
 /**
  * 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;
 }
예제 #2
0
 /**
  * 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);
 }
예제 #3
0
 /**
  * Validate single element from array
  */
 private function checkArrayItems(Validator $validator, $item, $schema, $myName, $errors)
 {
     return $validator->check($item, $schema, $myName, $errors);
 }