CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (Github)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 3.0 Red Velvet API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 3.0
      • 5.2
      • 5.1
      • 5.0
      • 4.6
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Global
  • Cake
    • Auth
    • Cache
    • Collection
    • Console
    • Controller
    • Core
    • Database
      • Dialect
      • Driver
      • Exception
      • Expression
      • Log
      • Schema
      • Statement
      • Type
    • Datasource
    • Error
    • Event
    • Filesystem
    • Form
    • I18n
    • Log
    • Network
    • ORM
    • Routing
    • Shell
    • TestSuite
    • Utility
    • Validation
    • View

Class QueryCompiler

Responsible for compiling a Query object into its SQL representation

Namespace: Cake\Database

Property Summary

  • $_deleteParts protected
    array

    The list of query clauses to traverse for generating a DELETE statement

  • $_insertParts protected
    array

    The list of query clauses to traverse for generating an INSERT statement

  • $_orderedUnion protected
    bool

    Indicate whether or not this query dialect supports ordered unions.

  • $_selectParts protected
    array

    The list of query clauses to traverse for generating a SELECT statement

  • $_templates protected
    array

    List of sprintf templates that will be used for compiling the SQL for this query. There are some clauses that can be built as just as the direct concatenation of the internal parts, those are listed here.

  • $_updateParts protected
    array

    The list of query clauses to traverse for generating an UPDATE statement

Method Summary

  • _buildFromPart() protected

    Helper function used to build the string representation of a FROM clause, it constructs the tables list taking care of aliasing and converting expression objects to string.

  • _buildInsertPart() protected

    Builds the SQL fragment for INSERT INTO.

  • _buildJoinPart() protected

    Helper function used to build the string representation of multiple JOIN clauses, it constructs the joins list taking care of aliasing and converting expression objects to string in both the table to be joined and the conditions to be used.

  • _buildSelectPart() protected

    Helper function used to build the string representation of a SELECT clause, it constructs the field list taking care of aliasing and converting expression objects to string. This function also constructs the DISTINCT clause for the query.

  • _buildSetPart() protected

    Helper function to generate SQL for SET expressions.

  • _buildUnionPart() protected

    Builds the SQL string for all the UNION clauses in this query, when dealing with query objects it will also transform them using their configured SQL dialect.

  • _buildValuesPart() protected

    Builds the SQL fragment for INSERT INTO.

  • _sqlCompiler() protected

    Returns a callable object that can be used to compile a SQL string representation of this query.

  • _stringifyExpressions() protected

    Helper function used to covert ExpressionInterface objects inside an array into their string representation.

  • compile() public

    Returns the SQL representation of the provided query after generating the placeholders for the bound values using the provided generator

Method Detail

_buildFromPart() ¶ protected

_buildFromPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $generator): string

Helper function used to build the string representation of a FROM clause, it constructs the tables list taking care of aliasing and converting expression objects to string.

Parameters
array $parts

list of tables to be transformed to string

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $generator

the placeholder generator to be used in expressions

Returns
string

_buildInsertPart() ¶ protected

_buildInsertPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $generator): string

Builds the SQL fragment for INSERT INTO.

Parameters
array $parts

The insert parts.

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $generator

the placeholder generator to be used in expressions

Returns
string

_buildJoinPart() ¶ protected

_buildJoinPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $generator): string

Helper function used to build the string representation of multiple JOIN clauses, it constructs the joins list taking care of aliasing and converting expression objects to string in both the table to be joined and the conditions to be used.

Parameters
array $parts

list of joins to be transformed to string

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $generator

the placeholder generator to be used in expressions

Returns
string

_buildSelectPart() ¶ protected

_buildSelectPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $generator): string

Helper function used to build the string representation of a SELECT clause, it constructs the field list taking care of aliasing and converting expression objects to string. This function also constructs the DISTINCT clause for the query.

Parameters
array $parts

list of fields to be transformed to string

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $generator

the placeholder generator to be used in expressions

Returns
string

_buildSetPart() ¶ protected

_buildSetPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $generator): string

Helper function to generate SQL for SET expressions.

Parameters
array $parts

List of keys & values to set.

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $generator

the placeholder generator to be used in expressions

Returns
string

_buildUnionPart() ¶ protected

_buildUnionPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $generator): string

Builds the SQL string for all the UNION clauses in this query, when dealing with query objects it will also transform them using their configured SQL dialect.

Parameters
array $parts

list of queries to be operated with UNION

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $generator

the placeholder generator to be used in expressions

Returns
string

_buildValuesPart() ¶ protected

_buildValuesPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $generator): string

Builds the SQL fragment for INSERT INTO.

Parameters
array $parts

The values parts.

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $generator

the placeholder generator to be used in expressions

Returns
string

_sqlCompiler() ¶ protected

_sqlCompiler(string $sql, Cake\Database\Query $query, Cake\Database\ValueBinder $generator): Closure

Returns a callable object that can be used to compile a SQL string representation of this query.

Parameters
string $sql

initial sql string to append to

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $generator

The placeholder and value binder object

Returns
Closure

_stringifyExpressions() ¶ protected

_stringifyExpressions(array $expressions, Cake\Database\ValueBinder $generator): array

Helper function used to covert ExpressionInterface objects inside an array into their string representation.

Parameters
array $expressions

list of strings and ExpressionInterface objects

Cake\Database\ValueBinder $generator

the placeholder generator to be used in expressions

Returns
array

compile() ¶ public

compile(Cake\Database\Query $query, Cake\Database\ValueBinder $generator): Closure

Returns the SQL representation of the provided query after generating the placeholders for the bound values using the provided generator

Parameters
Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $generator

the placeholder generator to be used in expressions

Returns
Closure

Property Detail

$_deleteParts ¶ protected

The list of query clauses to traverse for generating a DELETE statement

Type
array

$_insertParts ¶ protected

The list of query clauses to traverse for generating an INSERT statement

Type
array

$_orderedUnion ¶ protected

Indicate whether or not this query dialect supports ordered unions.

Overridden in subclasses.

Type
bool

$_selectParts ¶ protected

The list of query clauses to traverse for generating a SELECT statement

Type
array

$_templates ¶ protected

List of sprintf templates that will be used for compiling the SQL for this query. There are some clauses that can be built as just as the direct concatenation of the internal parts, those are listed here.

Type
array

$_updateParts ¶ protected

The list of query clauses to traverse for generating an UPDATE statement

Type
array
OpenHub
Pingping
Linode
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (Github)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs