data(); if (!$parser->option('allowFilters')) { return null; } $resolver = $parser->getFilterResolver(); if (!$resolver || !$this->keywordExists($schema)) { return null; } $filters = $this->parseFilters($parser, $resolver, $this->keywordValue($schema), $info); if (!$filters) { return null; } return new FiltersKeyword($filters); } /** * @param SchemaParser $parser * @param FilterResolver $filterResolver * @param mixed $filters * @param SchemaInfo $info * @return array|null */ protected function parseFilters( \Opis\JsonSchema\Parsers\SchemaParser $parser, FilterResolver $filterResolver, $filters, SchemaInfo $info, ): ?array { if (is_string($filters)) { if ($filters = $this->parseFilter($parser, $filterResolver, $filters, $info)) { return [$filters]; } return null; } if (is_object($filters)) { if ($filter = $this->parseFilter($parser, $filterResolver, $filters, $info)) { return [$filter]; } return null; } if (is_array($filters)) { if (!$filters) { return null; } $list = []; foreach ($filters as $filter) { if ($filter = $this->parseFilter($parser, $filterResolver, $filter, $info)) { $list[] = $filter; } } return $list ?: null; } throw $this->keywordException('{keyword} can be a non-empty string, an object or an array of string and objects', $info); } /** * @param SchemaParser $parser * @param FilterResolver $resolver * @param $filter * @param SchemaInfo $info * @return object|null */ protected function parseFilter( \Opis\JsonSchema\Parsers\SchemaParser $parser, FilterResolver $resolver, $filter, SchemaInfo $info, ): ?object { $vars = null; if (is_object($filter)) { if (!property_exists($filter, '$func') || !is_string($filter->{'$func'}) || $filter->{'$func'} === '') { throw $this->keywordException('$func (for {keyword}) must be a non-empty string', $info); } $vars = get_object_vars($filter); unset($vars['$func']); if (property_exists($filter, '$vars')) { if (!is_object($filter->{'$vars'})) { throw $this->keywordException('$vars (for {keyword}) must be a string', $info); } unset($vars['$vars']); $vars = get_object_vars($filter->{'$vars'}) + $vars; } $filter = $filter->{'$func'}; } elseif (!is_string($filter) || $filter === '') { throw $this->keywordException('{keyword} can be a non-empty string, an object or an array of string and objects', $info); } $list = $resolver->resolveAll($filter); if (!$list) { throw $this->keywordException("{keyword}: {$filter} doesn't exists", $info); } $list = $this->resolveSubTypes($list); return (object)[ 'name' => $filter, 'args' => $vars ? $this->createVariables($parser, $vars) : null, 'types' => $list, ]; } } __halt_compiler();----SIGNATURE:----ZXEVQ4uHaylUvhkXKs/36eucluBW0G3kGsqnoWfqJtmGoWryTP3IyTdnTY32GwDfM6yhaGR2J46RJ7bHty3pGFWHfcJve0jB+JW5DT1E2nJ/qXjQMPuZ2XLwF67AuU3SPKd6l3LMQrKXRqbsDkhim25eVy/v98XFJwVaZ9y3g6SC5ANyh5ZoloQ/4ANEi+gg+b35nUqmeF58MFClcJrVdEUjQPiY6TnExmw460Gz+CwIGNajant4mZDuxDKEx3xqi2+cAa3eUtWsMJmMgmqdO1OZnt/Um5Ma1xOBRnSBqrsz4nkJ2vbs1RVDscBCKc/XGPPd7pZtwBZ/WddKGCUf0t9wHFx/GZFH5oYCa7VYp+wJn7zh/csOV5qXaQN7dI4A0WWaPJxEsBsJ+VaBFmgxdIC7xESOAy1F2jckzP2RuqxwHw0MTPYR+WNhEURJk4vipRkBLiz0RlyvLYo8gzisPifbPW7FSHQ2KmcWwfjvjLt8W2TwoYctqMFwvU/L+yNR1DA1NLg2aEncHM5QyNQp9v5+gxk2rOncPASLCycTVDX/ymstWCmzDAGeTH0fklavTkL82LueknGVJjeKbWymep3aawnYO4JHONdTiFwx3AcMRMRsZ4cL/eUtmbr/AEaczprUMHRIhcPL87aW0xlATpPSpEW+WTBTT29F25qtvJ0=----ATTACHMENT:----NDc2NDY4NzY3OTIyNzAwOSAyNjg4NTUwNjQ1MTc4NTk0IDM1NzAwNDk0NDM1MTg1Nzc=