Class FunctionsBuilder
Contains methods related to generating FunctionExpression objects with most commonly used SQL functions. This acts as a factory for FunctionExpression objects.
Method Summary
- 
          
__call() public
Magic method dispatcher to create custom SQL function calls
 - 
          
_build() protected
Returns a new instance of a FunctionExpression. This is used for generating arbitrary function calls in the final SQL string.
 - 
          
_literalArgumentFunction() protected
Helper function to build a function expression that only takes one literal argument.
 - 
          
avg() public
Returns a FunctionExpression representing a call to SQL AVG function.
 - 
          
coalesce() public
Returns a FunctionExpression representing a call to SQL COALESCE function.
 - 
          
concat() public
Returns a FunctionExpression representing a string concatenation
 - 
          
count() public
Returns a FunctionExpression representing a call to SQL COUNT function.
 - 
          
dateAdd() public
Add the time unit to the date expression
 - 
          
dateDiff() public
Returns a FunctionExpression representing the difference in days between two dates.
 - 
          
datePart() public
Returns the specified date part from the SQL expression.
 - 
          
dayOfWeek() public
Returns a FunctionExpression representing a call to SQL WEEKDAY function. 1 - Sunday, 2 - Monday, 3 - Tuesday...
 - 
          
extract() public
Returns the specified date part from the SQL expression.
 - 
          
max() public
Returns a FunctionExpression representing a call to SQL MAX function.
 - 
          
min() public
Returns a FunctionExpression representing a call to SQL MIN function.
 - 
          
now() public
Returns a FunctionExpression representing a call that will return the current date and time. By default it returns both date and time, but you can also make it generate only the date or only the time.
 - 
          
sum() public
Returns a FunctionExpression representing a call to SQL SUM function.
 - 
          
weekday() public
Returns a FunctionExpression representing a call to SQL WEEKDAY function. 1 - Sunday, 2 - Monday, 3 - Tuesday...
 
Method Detail
__call() ¶ public
__call(string $name, array $args): Cake\Database\Expression\FunctionExpression
      Magic method dispatcher to create custom SQL function calls
Parameters
- 
                
string$name the SQL function name to construct
- 
                
array$args list with up to 2 arguments, first one being an array with parameters for the SQL function and second one a list of types to bind to those params
Returns
Cake\Database\Expression\FunctionExpression_build() ¶ protected
_build(string $name, array $params = [], array $types = []): FunctionExpression
      Returns a new instance of a FunctionExpression. This is used for generating arbitrary function calls in the final SQL string.
Parameters
- 
                
string$name the name of the SQL function to constructed
- 
                
array$params optional list of params to be passed to the function
- 
                
array$types optional list of types for each function param
Returns
FunctionExpression_literalArgumentFunction() ¶ protected
_literalArgumentFunction(string $name, mixed $expression, array $types = []): FunctionExpression
      Helper function to build a function expression that only takes one literal argument.
Parameters
- 
                
string$name name of the function to build
- 
                
mixed$expression the function argument
- 
                
array$types optional list of types to bind to the arguments
Returns
FunctionExpressionavg() ¶ public
avg(mixed $expression, array $types = []): FunctionExpression
      Returns a FunctionExpression representing a call to SQL AVG function.
Parameters
- 
                
mixed$expression the function argument
- 
                
array$types optional list of types to bind to the arguments
Returns
FunctionExpressioncoalesce() ¶ public
coalesce(array $args, array $types = []): FunctionExpression
      Returns a FunctionExpression representing a call to SQL COALESCE function.
Parameters
- 
                
array$args List of expressions to evaluate as function parameters
- 
                
array$types optional list of types to bind to the arguments
Returns
FunctionExpressionconcat() ¶ public
concat(array $args, array $types = []): FunctionExpression
      Returns a FunctionExpression representing a string concatenation
Parameters
- 
                
array$args List of strings or expressions to concatenate
- 
                
array$types optional list of types to bind to the arguments
Returns
FunctionExpressioncount() ¶ public
count(mixed $expression, array $types = []): FunctionExpression
      Returns a FunctionExpression representing a call to SQL COUNT function.
Parameters
- 
                
mixed$expression the function argument
- 
                
array$types optional list of types to bind to the arguments
Returns
FunctionExpressiondateAdd() ¶ public
dateAdd(string $expression, string $value, string $unit, array $types = []): Cake\Database\Expression\FunctionExpression
      Add the time unit to the date expression
Parameters
- 
                
string$expression Expression to obtain the date part from.
- 
                
string$value Value to be added. Use negative to substract.
- 
                
string$unit Unit of the value e.g. hour or day.
- 
                
array$types optional list of types to bind to the arguments
Returns
Cake\Database\Expression\FunctionExpressiondateDiff() ¶ public
dateDiff(array $args, array $types = []): FunctionExpression
      Returns a FunctionExpression representing the difference in days between two dates.
Parameters
- 
                
array$args List of expressions to obtain the difference in days.
- 
                
array$types optional list of types to bind to the arguments
Returns
FunctionExpressiondatePart() ¶ public
datePart(string $part, string $expression, array $types = []): Cake\Database\Expression\FunctionExpression
      Returns the specified date part from the SQL expression.
Parameters
- 
                
string$part Part of the date to return.
- 
                
string$expression Expression to obtain the date part from.
- 
                
array$types optional list of types to bind to the arguments
Returns
Cake\Database\Expression\FunctionExpressiondayOfWeek() ¶ public
dayOfWeek(mixed $expression, array $types = []): Cake\Database\Expression\FunctionExpression
      Returns a FunctionExpression representing a call to SQL WEEKDAY function. 1 - Sunday, 2 - Monday, 3 - Tuesday...
Parameters
- 
                
mixed$expression the function argument
- 
                
array$types optional list of types to bind to the arguments
Returns
Cake\Database\Expression\FunctionExpressionextract() ¶ public
extract(string $part, string $expression, array $types = []): Cake\Database\Expression\FunctionExpression
      Returns the specified date part from the SQL expression.
Parameters
- 
                
string$part Part of the date to return.
- 
                
string$expression Expression to obtain the date part from.
- 
                
array$types optional list of types to bind to the arguments
Returns
Cake\Database\Expression\FunctionExpressionmax() ¶ public
max(mixed $expression, array $types = []): FunctionExpression
      Returns a FunctionExpression representing a call to SQL MAX function.
Parameters
- 
                
mixed$expression the function argument
- 
                
array$types optional list of types to bind to the arguments
Returns
FunctionExpressionmin() ¶ public
min(mixed $expression, array $types = []): FunctionExpression
      Returns a FunctionExpression representing a call to SQL MIN function.
Parameters
- 
                
mixed$expression the function argument
- 
                
array$types optional list of types to bind to the arguments
Returns
FunctionExpressionnow() ¶ public
now(string $type = 'datetime'): Cake\Database\Expression\FunctionExpression
      Returns a FunctionExpression representing a call that will return the current date and time. By default it returns both date and time, but you can also make it generate only the date or only the time.
Parameters
- 
                
string$type optional (datetime|date|time)
Returns
Cake\Database\Expression\FunctionExpressionsum() ¶ public
sum(mixed $expression, array $types = []): FunctionExpression
      Returns a FunctionExpression representing a call to SQL SUM function.
Parameters
- 
                
mixed$expression the function argument
- 
                
array$types optional list of types to bind to the arguments
Returns
FunctionExpressionweekday() ¶ public
weekday(mixed $expression, array $types = []): Cake\Database\Expression\FunctionExpression
      Returns a FunctionExpression representing a call to SQL WEEKDAY function. 1 - Sunday, 2 - Monday, 3 - Tuesday...
Parameters
- 
                
mixed$expression the function argument
- 
                
array$types optional list of types to bind to the arguments
Returns
Cake\Database\Expression\FunctionExpression