IsType
extends Constraint
in package
Tags
Table of Contents
Constants
- TYPE_ARRAY = 'array'
- TYPE_BOOL = 'bool'
- TYPE_CALLABLE = 'callable'
- TYPE_CLOSED_RESOURCE = 'resource (closed)'
- TYPE_FLOAT = 'float'
- TYPE_INT = 'int'
- TYPE_ITERABLE = 'iterable'
- TYPE_NULL = 'null'
- TYPE_NUMERIC = 'numeric'
- TYPE_OBJECT = 'object'
- TYPE_RESOURCE = 'resource'
- TYPE_SCALAR = 'scalar'
- TYPE_STRING = 'string'
- KNOWN_TYPES = ['array' => true, 'boolean' => true, 'bool' => true, 'double' => true, 'float' => true, 'integer' => true, 'int' => true, 'null' => true, 'numeric' => true, 'object' => true, 'real' => true, 'resource' => true, 'resource (closed)' => true, 'string' => true, 'scalar' => true, 'callable' => true, 'iterable' => true]
Properties
- $type : string
Methods
- __construct() : mixed
- count() : int
- Counts the number of constraint elements.
- evaluate() : bool|null
- Evaluates the constraint for parameter $other.
- toString() : string
- Returns a string representation of the constraint.
- additionalFailureDescription() : string
- Return additional failure description where needed.
- exporter() : Exporter
- fail() : never
- Throws an exception for the given compared value and test description.
- failureDescription() : string
- Returns the description of the failure.
- failureDescriptionInContext() : string
- Returns the description of the failure when this constraint appears in context of an $operator expression.
- matches() : bool
- Evaluates the constraint for parameter $other. Returns true if the constraint is met, false otherwise.
- reduce() : self
- Reduces the sub-expression starting at $this by skipping degenerate sub-expression and returns first descendant constraint that starts a non-reducible sub-expression.
- toStringInContext() : string
- Returns a custom string representation of the constraint object when it appears in context of an $operator expression.
- valueToTypeStringFragment() : string
Constants
TYPE_ARRAY
public
string
TYPE_ARRAY
= 'array'
TYPE_BOOL
public
string
TYPE_BOOL
= 'bool'
TYPE_CALLABLE
public
string
TYPE_CALLABLE
= 'callable'
TYPE_CLOSED_RESOURCE
public
string
TYPE_CLOSED_RESOURCE
= 'resource (closed)'
TYPE_FLOAT
public
string
TYPE_FLOAT
= 'float'
TYPE_INT
public
string
TYPE_INT
= 'int'
TYPE_ITERABLE
public
string
TYPE_ITERABLE
= 'iterable'
TYPE_NULL
public
string
TYPE_NULL
= 'null'
TYPE_NUMERIC
public
string
TYPE_NUMERIC
= 'numeric'
TYPE_OBJECT
public
string
TYPE_OBJECT
= 'object'
TYPE_RESOURCE
public
string
TYPE_RESOURCE
= 'resource'
TYPE_SCALAR
public
string
TYPE_SCALAR
= 'scalar'
TYPE_STRING
public
string
TYPE_STRING
= 'string'
KNOWN_TYPES
private
mixed
KNOWN_TYPES
= ['array' => true, 'boolean' => true, 'bool' => true, 'double' => true, 'float' => true, 'integer' => true, 'int' => true, 'null' => true, 'numeric' => true, 'object' => true, 'real' => true, 'resource' => true, 'resource (closed)' => true, 'string' => true, 'scalar' => true, 'callable' => true, 'iterable' => true]
Tags
Properties
$type read-only
private
string
$type
Tags
Methods
__construct()
public
__construct(string $type) : mixed
Parameters
- $type : string
Tags
count()
Counts the number of constraint elements.
public
count() : int
Return values
intevaluate()
Evaluates the constraint for parameter $other.
public
evaluate(mixed $other[, string $description = '' ][, bool $returnResult = false ]) : bool|null
If $returnResult is set to false (the default), an exception is thrown in case of a failure. null is returned otherwise.
If $returnResult is true, the result of the evaluation is returned as a boolean value instead: true in case of success, false in case of a failure.
Parameters
- $other : mixed
- $description : string = ''
- $returnResult : bool = false
Tags
Return values
bool|nulltoString()
Returns a string representation of the constraint.
public
toString() : string
Return values
stringadditionalFailureDescription()
Return additional failure description where needed.
protected
additionalFailureDescription(mixed $other) : string
The function can be overridden to provide additional failure information like a diff
Parameters
- $other : mixed
Return values
stringexporter()
protected
exporter() : Exporter
Tags
Return values
Exporterfail()
Throws an exception for the given compared value and test description.
protected
fail(mixed $other, string $description[, ComparisonFailure|null $comparisonFailure = null ]) : never
Parameters
- $other : mixed
- $description : string
- $comparisonFailure : ComparisonFailure|null = null
Tags
Return values
neverfailureDescription()
Returns the description of the failure.
protected
failureDescription(mixed $other) : string
The beginning of failure messages is "Failed asserting that" in most cases. This method should return the second part of that sentence.
To provide additional failure information additionalFailureDescription can be used.
Parameters
- $other : mixed
Return values
stringfailureDescriptionInContext()
Returns the description of the failure when this constraint appears in context of an $operator expression.
protected
failureDescriptionInContext(Operator $operator, mixed $role, mixed $other) : string
The purpose of this method is to provide meaningful failure description in context of operators such as LogicalNot. Native PHPUnit constraints are supported out of the box by LogicalNot, but externally developed ones had no way to provide correct messages in this context.
The method shall return empty string, when it does not handle customization by itself.
Parameters
- $operator : Operator
- $role : mixed
- $other : mixed
Return values
stringmatches()
Evaluates the constraint for parameter $other. Returns true if the constraint is met, false otherwise.
protected
matches(mixed $other) : bool
Parameters
- $other : mixed
Return values
boolreduce()
Reduces the sub-expression starting at $this by skipping degenerate sub-expression and returns first descendant constraint that starts a non-reducible sub-expression.
protected
reduce() : self
Returns $this for terminal constraints and for operators that start non-reducible sub-expression, or the nearest descendant of $this that starts a non-reducible sub-expression.
A constraint expression may be modelled as a tree with non-terminal nodes (operators) and terminal nodes. For example:
LogicalOr (operator, non-terminal)
+ LogicalAnd (operator, non-terminal)
| + IsType('int') (terminal)
| + GreaterThan(10) (terminal)
+ LogicalNot (operator, non-terminal)
+ IsType('array') (terminal)
A degenerate sub-expression is a part of the tree, that effectively does not contribute to the evaluation of the expression it appears in. An example of degenerate sub-expression is a BinaryOperator constructed with single operand or nested BinaryOperators, each with single operand. An expression involving a degenerate sub-expression is equivalent to a reduced expression with the degenerate sub-expression removed, for example
LogicalAnd (operator)
+ LogicalOr (degenerate operator)
| + LogicalAnd (degenerate operator)
| + IsType('int') (terminal)
+ GreaterThan(10) (terminal)
is equivalent to
LogicalAnd (operator)
+ IsType('int') (terminal)
+ GreaterThan(10) (terminal)
because the subexpression
+ LogicalOr
+ LogicalAnd
+ -
is degenerate. Calling reduce() on the LogicalOr object above, as well as on LogicalAnd, shall return the IsType('int') instance.
Other specific reductions can be implemented, for example cascade of LogicalNot operators
+ LogicalNot
+ LogicalNot
+LogicalNot
+ IsTrue
can be reduced to
LogicalNot
+ IsTrue
Return values
selftoStringInContext()
Returns a custom string representation of the constraint object when it appears in context of an $operator expression.
protected
toStringInContext(Operator $operator, mixed $role) : string
The purpose of this method is to provide meaningful descriptive string in context of operators such as LogicalNot. Native PHPUnit constraints are supported out of the box by LogicalNot, but externally developed ones had no way to provide correct strings in this context.
The method shall return empty string, when it does not handle customization by itself.
Parameters
- $operator : Operator
- $role : mixed
Return values
stringvalueToTypeStringFragment()
protected
valueToTypeStringFragment(mixed $value) : string
Parameters
- $value : mixed