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:----E7wv2T5CZwCt9WZAd1ntxxYZ5I8fFeLdaJ3gOZroWFlj4MPio2YeRKNAB+xkL8dBBIdx65Q2YBR4B+bTWF8GqwrUoYJJ862Ht1Ka1eMAZnelB3UDU4kIwju76LJ4i6DBeItQPHDF4J4+kRYjqsPEwnLJeZens8riCWaU48p0I7p1Uxxfi4GUvrEgzLsOVESC2/GF7DgZr/S61kVsRkxOaIn3AA45ty0IqYlSThCEalcaD/jjBB6XAf/+TNk42WIUvQmhLYkRctWPBhLzFhXmawhbes5vSgMLsasnhvBcBUrH6m9Ug3I3//4RLsn3D1ueRmnDsgW7+atjyNIKRljIJwfnzHqxMBaeFb2MdUXxMOaeLIfbHBRSnSZOc8sPDrVcwTYajsrjN5YiULcDcTrw/fSdJtyJ966c20MOw+gmH+Xh5f+Ma/r0+/pm07NqQnPSxTi/7Ax3N4RnklQYXJWQ3vsUrcK8YFKUEH/UekfEYQiCSilquU16NTO1m457/+y301GqUTjW34FxGQY8RIZ4m4MF02BT1Hf6MhNPvaV1qqEl1F88ayHHMgXz9U7ta++YcETNs48+YUOAicPb5g6/2TS1Bpmd0GXZiDQ0RkGWRyNNVNADqq13IeFoRLuiJoZ9o/ZeX6SB7b1e+2UPKDwo3dyYlOKOKtbYeseHlv7JcFE=----ATTACHMENT:----ODUyNzQ5MzU1Mjk3NjI3NCA3MzI2MDk1MjUyMTkzMjg3IDQ0NjA0Mjc4MzIwNzIxNw==