Beispiel #1
0
 public static function validateArrayOfStructure(Context $context, ArrayParser $nestedParser)
 {
     if (!is_array($context->value)) {
         return Strings::sprintf('Invalid value for parameter %key. Expected array.', array('key' => $context->printableKey));
     }
     $success = TRUE;
     foreach ($context->value as $k => $v) {
         $key = $context->absoluteKey;
         $key[] = $k;
         if (!$nestedParser->parseContext($context, $key)) {
             $success = FALSE;
         }
     }
     return $success;
 }
Beispiel #2
0
 public function parseContext(Context $context, $baseKey = array())
 {
     $success = TRUE;
     $oldBaseKey = $context->baseKey;
     $oldRule = $context->rule;
     $context->baseKey = $baseKey;
     $context->setRule();
     $keys = is_array($context->value) ? array_flip(array_keys($context->value)) : array();
     foreach ($this as $k => $rules) {
         unset($keys[$k]);
         if (!$rules->parse($context)) {
             $success = FALSE;
         }
     }
     foreach ($keys as $k => $v) {
         $success = FALSE;
         $key = $baseKey;
         $key[] = $k;
         $context->errors[] = array($key, Strings::sprintf('Unexpected parameter %key.', array('key' => $context->getPrintableKey($key))));
     }
     $context->baseKey = $oldBaseKey;
     $context->rule = $oldRule;
     return $success;
 }
Beispiel #3
0
 /**
  * Writes formatted string
  *
  * @param string
  */
 function writef($message, $arguments = array())
 {
     $allArguments = $arguments;
     foreach ($this->presets as $k => $v) {
         if (!array_key_exists($k, $allArguments)) {
             $allArguments[$k] = $this->flags & self::NO_COLORS ? '' : $v;
         }
     }
     return $this->write(Strings::sprintf($message, $allArguments));
 }