Beispiel #1
0
 /**
  * @param  array|\Traversable $var
  * @param  string             $format
  * @return string
  */
 public function walk($var, $format = '%s')
 {
     $out = '';
     $args = $this->args(func_get_args(), 2);
     $what = is_string($var) ? $this->command->run('raw', $var) : $var;
     foreach (\Foil\arraize($what, $this->options['autoescape'], [], true) as $value) {
         $replacement = is_array($value) ? $value : [$value];
         $out .= vsprintf($format, array_merge($replacement, $args));
     }
     return $out;
 }
Beispiel #2
0
 /**
  * @inheritdoc
  */
 public function filter($filter, $input)
 {
     $filters = is_string($filter) ? explode('|', $filter) : array_values((array) $filter);
     if (func_num_args() > 2 && is_array(func_get_arg(2))) {
         $args = count($filters) === 1 ? [func_get_arg(2)] : array_filter(func_get_arg(2), 'is_array');
     } else {
         $args = array_fill(0, count($filters), []);
     }
     if (count($args) !== count($filters)) {
         throw new InvalidArgumentException('Args array must contain as many sub-arrays as filters number.');
     }
     array_walk($filters, function ($filter, $i, $args) use(&$input) {
         $input = $this->command->filter($filter, $input, $args[$i]);
     }, $args);
     return $input;
 }