Copied!

Criterion

Criterion.php : 16
Implements CriterionInterface

Properties

public $operator

Criterion.php : 23

The operator used by the Criterion.

public string $operator

public $target

Criterion.php : 37

The target used by the criteria (field, metadata...).

public string $target

public $value

Criterion.php : 30

The value(s) matched by the criteria.

public array<string|int, scalar>|scalar $value

public $valueData

Criterion.php : 44

Additional value data, required by some criterions, MapLocationDistance for instance.

public Value $valueData

Methods

public__construct()

Criterion.php : 60

Performs operator validation based on the Criterion specifications returned by {@see getSpecifications()}.

public __construct(string|null $target, string|null $operator, array<string|int, scalar>|scalar $value[, Value|null $valueData = null ])

Parameters

Name Type Default value Description
$target string|null -

The target the Criterion applies to: metadata identifier, field identifier...

$operator string|null -

The operator the Criterion uses. If null is given, will default to Operator::IN if $value is an array, Operator::EQ if it is not.

$value array<string|int, scalar>|scalar - -
$valueData Value|null null -
Tags
Throws
InvalidArgumentException

if the provided operator isn't supported

publicgetSpecifications()

Criterion.php : 146

Criterion description function.

public abstract getSpecifications() : array<string|int, Specifications>

Returns the combination of the Criterion's supported operator/value, as an array of Specifications objects

  • Operator is one supported Operator, as an Operator::* constant
  • ValueType is the type of input value this operator requires, either array or single
  • SupportedTypes is an array of types the operator will accept
  • ValueCountLimitation is an integer saying how many values are expected.
// IN and EQ are supported return [ // The EQ operator expects a single value, either as an integer or a string new Specifications( Operator::EQ, Specifications::FORMAT_SINGLE, Specifications::TYPE_INTEGER | Specifications::TYPE_STRING ), // The IN operator expects an array of values, of either integers or strings new Specifications( Operator::IN, Specifications::FORMAT_ARRAY, Specifications::TYPE_INTEGER | Specifications::TYPE_STRING ) ]

Return values

array<string|int, Specifications>