hasFilter($type) === false) { foreach ($fields as $name => $value) { yield $name => $this->resolveValue($value); } return; } $allowedFields = $this->getAllowedFields($type); foreach ($fields as $name => $value) { if (isset($allowedFields[$name]) === true) { yield $name => $this->resolveValue($value); } } } /** * Resolves a given by either calling it if it's a callable. Otherwise * just return the value itself. * * @param mixed $value * @return mixed */ private function resolveValue($value) { if ($value instanceof \Closure) { return $value(); } return $value; } }