final class ExpressionBinder
Restricted visibility: declared "@visibility ZtdQuery\Platform\MySql". Code outside that scope must not name this declaration.

Expression Binder.

Constants§

public const INCOMING_ALIAS = '__ztd_incoming'

Incoming alias.

public const EXISTING_ALIAS = '__ztd_existing'

Existing alias.

Methods§

public function __construct(
    private MySqlIdentifierQuoter $quoter,
    private SqlLexerProfile $lexerProfile,
)

Configure the dependencies used by this operation.

Parameters

public function bindExpression(
    string $expression,
    string $tableName,
    list<string> $tableColumns,
    string $unqualifiedAlias = self::EXISTING_ALIAS,
    ?string $incomingNamespace = null,
): string
public function subqueryTokenIndexes(list<SqlToken> $tokens): array<int, true>
public function bindingAt(
    list<SqlToken> $tokens,
    int $index,
    array<string, true> $columnNames,
    array<string, true> $incomingNamespaces,
    string $tableName,
    string $unqualifiedAlias,
): array{offset: int, length: int, value: string, skip?: int}|null

Parameters

$tokenslist<SqlToken>
$indexint
$columnNamesarray<string, true>
$incomingNamespacesarray<string, true>
$tableNamestring
$unqualifiedAliasstring

Returns

array{offset: int, length: int, value: string, skip?: int}|null
Test cases 1
Called from 1
Calls 13
public function incomingBinding(
    list<SqlToken> $tokens,
    int $index,
): array{offset: int, length: int, value: string, skip: int}|null
public function qualifiedBinding(
    SqlToken $qualifier,
    SqlToken $column,
    string $alias,
): array{offset: int, length: int, value: string}

Private surface 2§

Implementation details, listed for orientation only.

private MySqlIdentifierQuoter $quoter
private SqlLexerProfile $lexerProfile

Test cases 15§

Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.

Dedicated tests 6
Other tests reaching this symbol 9

Relations§

Instantiated in 3
Method calls 4
Constant reads 5
Type declarations 1