PHP Class pinq\expressions\Expression

Author: Elliot Levin ([email protected])
Inheritance: implements Serializable
ファイルを表示 Open project: timetoogo/pinq Class Usage Examples

Public Methods

Method Description
__clone ( )
__toString ( )
allOfType ( array $expressions, string $type, boolean $allowNull = false ) : boolean Returns whether the expressions are all of the supplied type.
argument ( Expression $value, boolean $isUnpacked = false ) : ArgumentExpression
arrayExpression ( array $items ) : ArrayExpression
arrayItem ( Expression $key = null, Expression $value, boolean $isReference = false ) : ArrayItemExpression
asEvaluator ( Pinq\Expressions\IEvaluationContext $context = null ) : Pinq\Expressions\IEvaluator Creates an expression evaluator for the expression with the supplied context.
assign ( Expression $assignToValue, string $assignmentOperator, Expression $assignmentValue ) : AssignmentExpression
binaryOperation ( Expression $leftOperand, string $operator, Expression $rightOperand ) : BinaryOperationExpression
cast ( string $castType, Expression $castValue ) : CastExpression
classConstant ( Expression $class, string $name ) : ClassConstantExpression
cloneAll ( array $expressions ) : Expression | null[]
closure ( boolean $returnsReference, boolean $isStatic, array $parameterExpressions, array $usedVariables, array $bodyExpressions ) : ClosureExpression
closureUsedVariable ( string $name, boolean $isReference = false ) : ClosureUsedVariableExpression
compile ( ) : string Compiles the expression tree into equivalent PHP code.
compileAll ( array $expressions ) : string[] Compiles into equivalent PHP code
compileDebug ( ) : string Compiles the expression tree into debug code.
constant ( string $name ) : ConstantExpression
emptyExpression ( Expression $value ) : EmptyExpression
equals ( Expression $expression ) : boolean Returns whether the expression is equivalent to the supplied expression.
evaluate ( Pinq\Expressions\IEvaluationContext $context = null ) : mixed Evaluates the expression tree in the supplied context and returns the resulting value.
field ( Expression $value, Expression $name ) : FieldExpression
functionCall ( Expression $name, array $arguments = [] ) : FunctionCallExpression
getExpressionTypeName ( ) : string Gets a string representing the name of the expression.
getType ( ) : string Gets the class name as a string.
hash ( ) : string Returns a value hash for the expression.
hashAll ( array $expressions ) : string Returns a value hash for the supplied expressions.
index ( Expression $value, Expression $index = null ) : IndexExpression
invocation ( Expression $valueExpression, array $arguments = [] ) : InvocationExpression
issetExpression ( array $values ) : IssetExpression
methodCall ( Expression $value, Expression $name, array $arguments = [] ) : MethodCallExpression
newExpression ( Expression $classType, array $arguments = [] ) : NewExpression
parameter ( string $name, string | null $typeHint = null, Expression $defaultValue = null, boolean $isPassedByReference = false, boolean $isVariadic = false ) : ParameterExpression
returnExpression ( Expression $value = null ) : ReturnExpression
simplify ( Pinq\Expressions\IEvaluationContext $context = null ) : Expression Simplifies the expression tree in the supplied context.
simplifyAll ( array $expressions, Pinq\Expressions\IEvaluationContext $context = null ) : Expression[]
staticField ( Expression $class, Expression $name ) : StaticFieldExpression
staticMethodCall ( Expression $class, Expression $name, array $arguments = [] ) : StaticMethodCallExpression
ternary ( Expression $condition, Expression $ifTrue = null, Expression $ifFalse ) : TernaryExpression
throwExpression ( Expression $exception ) : ThrowExpression
traverse ( ExpressionWalker $walker ) : Expression
unaryOperation ( string $unaryOperator, Expression $operand ) : UnaryOperationExpression
unsetExpression ( array $values ) : UnsetExpression
value ( mixed $value ) : ValueExpression
variable ( Expression $name ) : VariableExpression

Protected Methods

Method Description
cannotEvaluate ( )
compileCode ( &$code )
isNormalSyntaxName ( string $name ) : boolean Returns whether the supplied name is considered normal name syntax and can be used plainly in code.
verifyAll ( array $expressions, string $type = __CLASS__ ) : Expression[] Verifies the supplied array only contains expressions of the supplied type.

Method Details

__clone() abstract public method

abstract public __clone ( )

__toString() final public method

final public __toString ( )

allOfType() final public static method

Returns whether the expressions are all of the supplied type.
final public static allOfType ( array $expressions, string $type, boolean $allowNull = false ) : boolean
$expressions array
$type string
$allowNull boolean
return boolean

argument() final public static method

final public static argument ( Expression $value, boolean $isUnpacked = false ) : ArgumentExpression
$value Expression
$isUnpacked boolean
return ArgumentExpression

arrayExpression() final public static method

final public static arrayExpression ( array $items ) : ArrayExpression
$items array
return ArrayExpression

arrayItem() final public static method

final public static arrayItem ( Expression $key = null, Expression $value, boolean $isReference = false ) : ArrayItemExpression
$key Expression
$value Expression
$isReference boolean
return ArrayItemExpression

asEvaluator() public method

Creates an expression evaluator for the expression with the supplied context.
public asEvaluator ( Pinq\Expressions\IEvaluationContext $context = null ) : Pinq\Expressions\IEvaluator
$context Pinq\Expressions\IEvaluationContext
return Pinq\Expressions\IEvaluator

assign() final public static method

final public static assign ( Expression $assignToValue, string $assignmentOperator, Expression $assignmentValue ) : AssignmentExpression
$assignToValue Expression
$assignmentOperator string
$assignmentValue Expression
return AssignmentExpression

binaryOperation() final public static method

final public static binaryOperation ( Expression $leftOperand, string $operator, Expression $rightOperand ) : BinaryOperationExpression
$leftOperand Expression
$operator string
$rightOperand Expression
return BinaryOperationExpression

cannotEvaluate() final protected static method

final protected static cannotEvaluate ( )

cast() final public static method

final public static cast ( string $castType, Expression $castValue ) : CastExpression
$castType string
$castValue Expression
return CastExpression

classConstant() final public static method

final public static classConstant ( Expression $class, string $name ) : ClassConstantExpression
$class Expression
$name string
return ClassConstantExpression

cloneAll() final public static method

final public static cloneAll ( array $expressions ) : Expression | null[]
$expressions array
return Expression | null[]

closure() final public static method

final public static closure ( boolean $returnsReference, boolean $isStatic, array $parameterExpressions, array $usedVariables, array $bodyExpressions ) : ClosureExpression
$returnsReference boolean
$isStatic boolean
$parameterExpressions array
$usedVariables array
$bodyExpressions array
return ClosureExpression

closureUsedVariable() final public static method

final public static closureUsedVariable ( string $name, boolean $isReference = false ) : ClosureUsedVariableExpression
$name string
$isReference boolean
return ClosureUsedVariableExpression

compile() final public method

Compiles the expression tree into equivalent PHP code.
final public compile ( ) : string
return string

compileAll() final public static method

Compiles into equivalent PHP code
final public static compileAll ( array $expressions ) : string[]
$expressions array
return string[]

compileCode() abstract protected method

abstract protected compileCode ( &$code )

compileDebug() final public method

Compiles the expression tree into debug code.
final public compileDebug ( ) : string
return string

constant() final public static method

final public static constant ( string $name ) : ConstantExpression
$name string
return ConstantExpression

emptyExpression() final public static method

final public static emptyExpression ( Expression $value ) : EmptyExpression
$value Expression
return EmptyExpression

equals() public method

Returns whether the expression is equivalent to the supplied expression.
public equals ( Expression $expression ) : boolean
$expression Expression
return boolean

evaluate() public method

Evaluates the expression tree in the supplied context and returns the resulting value.
public evaluate ( Pinq\Expressions\IEvaluationContext $context = null ) : mixed
$context Pinq\Expressions\IEvaluationContext
return mixed

field() final public static method

final public static field ( Expression $value, Expression $name ) : FieldExpression
$value Expression
$name Expression
return FieldExpression

functionCall() final public static method

final public static functionCall ( Expression $name, array $arguments = [] ) : FunctionCallExpression
$name Expression
$arguments array
return FunctionCallExpression

getExpressionTypeName() final public static method

For instance \Pinq\Expressions\BinaryOperationExpression::getExpressionTypeName() returns 'BinaryOperation'
final public static getExpressionTypeName ( ) : string
return string

getType() final public static method

Gets the class name as a string.
final public static getType ( ) : string
return string

hash() final public method

Returns a value hash for the expression.
final public hash ( ) : string
return string

hashAll() final public static method

Returns a value hash for the supplied expressions.
final public static hashAll ( array $expressions ) : string
$expressions array
return string

index() final public static method

final public static index ( Expression $value, Expression $index = null ) : IndexExpression
$value Expression
$index Expression
return IndexExpression

invocation() final public static method

final public static invocation ( Expression $valueExpression, array $arguments = [] ) : InvocationExpression
$valueExpression Expression
$arguments array
return InvocationExpression

isNormalSyntaxName() final protected static method

Example: 'foo' -> yes: $foo 'foo bar' -> no: ${'foo bar'}
final protected static isNormalSyntaxName ( string $name ) : boolean
$name string The field, function, method or variable name
return boolean

issetExpression() final public static method

final public static issetExpression ( array $values ) : IssetExpression
$values array
return IssetExpression

methodCall() final public static method

final public static methodCall ( Expression $value, Expression $name, array $arguments = [] ) : MethodCallExpression
$value Expression
$name Expression
$arguments array
return MethodCallExpression

newExpression() final public static method

final public static newExpression ( Expression $classType, array $arguments = [] ) : NewExpression
$classType Expression
$arguments array
return NewExpression

parameter() final public static method

final public static parameter ( string $name, string | null $typeHint = null, Expression $defaultValue = null, boolean $isPassedByReference = false, boolean $isVariadic = false ) : ParameterExpression
$name string
$typeHint string | null
$defaultValue Expression
$isPassedByReference boolean
$isVariadic boolean
return ParameterExpression

returnExpression() final public static method

final public static returnExpression ( Expression $value = null ) : ReturnExpression
$value Expression
return ReturnExpression

simplify() public method

Example: -2 + 4 Will become: 2
public simplify ( Pinq\Expressions\IEvaluationContext $context = null ) : Expression
$context Pinq\Expressions\IEvaluationContext
return Expression

simplifyAll() final public static method

final public static simplifyAll ( array $expressions, Pinq\Expressions\IEvaluationContext $context = null ) : Expression[]
$expressions array
$context Pinq\Expressions\IEvaluationContext
return Expression[]

staticField() final public static method

final public static staticField ( Expression $class, Expression $name ) : StaticFieldExpression
$class Expression
$name Expression
return StaticFieldExpression

staticMethodCall() final public static method

final public static staticMethodCall ( Expression $class, Expression $name, array $arguments = [] ) : StaticMethodCallExpression
$class Expression
$name Expression
$arguments array
return StaticMethodCallExpression

ternary() final public static method

final public static ternary ( Expression $condition, Expression $ifTrue = null, Expression $ifFalse ) : TernaryExpression
$condition Expression
$ifTrue Expression
$ifFalse Expression
return TernaryExpression

throwExpression() final public static method

final public static throwExpression ( Expression $exception ) : ThrowExpression
$exception Expression
return ThrowExpression

traverse() abstract public method

abstract public traverse ( ExpressionWalker $walker ) : Expression
$walker ExpressionWalker
return Expression

unaryOperation() final public static method

final public static unaryOperation ( string $unaryOperator, Expression $operand ) : UnaryOperationExpression
$unaryOperator string
$operand Expression
return UnaryOperationExpression

unsetExpression() final public static method

final public static unsetExpression ( array $values ) : UnsetExpression
$values array
return UnsetExpression

value() final public static method

final public static value ( mixed $value ) : ValueExpression
$value mixed
return ValueExpression

variable() final public static method

final public static variable ( Expression $name ) : VariableExpression
$name Expression
return VariableExpression

verifyAll() final protected static method

Verifies the supplied array only contains expressions of the supplied type.
final protected static verifyAll ( array $expressions, string $type = __CLASS__ ) : Expression[]
$expressions array
$type string
return Expression[]