classClauses
final class Clauses
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.
Projection, ordering, grouping, having and join effects on a query state.
Methods§
public function __construct(private Grammar $grammar)Uses the configured framework SQL grammar.
Parameters
$grammar | Grammar |
public function apply(QueryState $state, string $method, list<Domain> $arguments): ?QueryStateParameters
$state | QueryState | |
$method | string | |
$arguments | list<Domain> | A recognized mutation, or null. |
Returns
Test cases 3
Called from 1
Calls 12
- method-call Clauses::select() line 29
- method-call Clauses::raw() line 30
- method-call Clauses::from() line 31
- method-call Clauses::order() line 32
- function-call
countline 33 - static-call Domain::literal() line 33
- method-call QueryState::reject() line 33
- method-call Clauses::group() line 35
- method-call Clauses::having() line 36
- method-call Clauses::number() line 38
- method-call QueryState::with() line 40
- method-call Clauses::join() line 41
public function select(
QueryState $state,
list<Domain> $arguments,
bool $append = false,
): QueryStateParameters
$state | QueryState | |
$arguments | list<Domain> | Sets or appends explicitly selected columns. |
$append | bool |
Returns
Test cases 2
Called from 3
- method-call SqlCatalog\Extension\Laravel\Clauses::apply() packages/sql-catalog/src/Extension/Laravel/Clauses.php:29
- method-call SqlCatalog\Extension\Laravel\SelectCompiler::compile() packages/sql-catalog/src/Extension/Laravel/SelectCompiler.php:55
- method-call SqlCatalog\Extension\Laravel\SelectCompiler::total() packages/sql-catalog/src/Extension/Laravel/SelectCompiler.php:175
Calls 7
- method-call Clauses::columns() line 51
- method-call QueryState::reject() line 53
- static-call QueryState::list() line 56
- function-call
array_mapline 59 - method-call Grammar::wrap() line 59
- function-call
in_arrayline 63 - method-call Domain::signature() line 63
public function from(QueryState $state, list<Domain> $arguments): QueryStateParameters
$state | QueryState | |
$arguments | list<Domain> | Replaces the table, with an optional alias. |
Returns
Test cases 1
Called from 2
Calls 5
- function-call
in_arrayline 97 - function-call
countline 97 - method-call QueryState::reject() line 98
- static-call Domain::literal() line 101
- method-call QueryState::with() line 106
public function raw(
QueryState $state,
list<Domain> $arguments,
string $field,
string $bindings,
?string $boolean = null,
): QueryStateParameters
$state | QueryState | |
$arguments | list<Domain> | Appends raw SQL and its bindings to their respective components. |
$field | string | |
$bindings | string | |
$boolean | ?string |
Returns
Test cases 2
Called from 3
- method-call SqlCatalog\Extension\Laravel\Clauses::apply() packages/sql-catalog/src/Extension/Laravel/Clauses.php:30
- method-call SqlCatalog\Extension\Laravel\Clauses::apply() packages/sql-catalog/src/Extension/Laravel/Clauses.php:34
- method-call SqlCatalog\Extension\Laravel\Clauses::apply() packages/sql-catalog/src/Extension/Laravel/Clauses.php:37
Calls 8
- function-call
in_arrayline 114 - function-call
countline 114 - method-call Grammar::rawBindings() line 114
- static-call QueryState::list() line 114
- method-call QueryState::reject() line 116
- method-call QueryState::items() line 118
- method-call QueryState::append() line 120
- static-call Domain::literal() line 120
public function order(QueryState $state, list<Domain> $arguments, bool $descending): QueryStateParameters
$state | QueryState | |
$arguments | list<Domain> | Appends an ordering after validating the direction. |
$descending | bool |
Returns
Test cases 1
Called from 2
Calls 8
- static-call Domain::literal() line 128
- function-call
in_arrayline 130 - function-call
countline 130 - method-call QueryState::reject() line 131
- function-call
is_stringline 134 - function-call
strtolowerline 134 - method-call QueryState::append() line 140
- method-call Grammar::wrap() line 140
public function group(QueryState $state, list<Domain> $arguments): QueryStateParameters
$state | QueryState | |
$arguments | list<Domain> | Appends grouping identifiers. |
Returns
Test cases 1
Called from 1
Calls 5
- method-call Clauses::columns() line 148
- method-call QueryState::reject() line 150
- method-call QueryState::append() line 150
- function-call
array_mapline 150 - method-call Grammar::wrap() line 150
public function having(QueryState $state, list<Domain> $arguments, string $boolean): QueryStateParameters
$state | QueryState | |
$arguments | list<Domain> | A having comparison, compiled like a basic where. |
$boolean | string |
Returns
Test cases 1
Called from 1
Calls 6
- method-call Predicates::comparison() line 158
- new Predicates line 158
- method-call QueryState::reject() line 160
- method-call QueryState::items() line 162
- method-call QueryState::append() line 164
- static-call Domain::literal() line 164
public function number(QueryState $state, list<Domain> $arguments, string $field): QueryStateParameters
$state | QueryState | |
$arguments | list<Domain> | Sets a limit or offset the way Laravel normalizes them, leaving an unresolved number open. A null or negative limit leaves the window unlimited or unchanged; an offset is clamped to zero. |
$field | string |
Returns
Test cases 1
Called from 3
- method-call SqlCatalog\Extension\Laravel\Clauses::apply() packages/sql-catalog/src/Extension/Laravel/Clauses.php:38
- method-call SqlCatalog\Extension\Laravel\Clauses::apply() packages/sql-catalog/src/Extension/Laravel/Clauses.php:39
- method-call SqlCatalog\Extension\Laravel\SelectCompiler::page() packages/sql-catalog/src/Extension/Laravel/SelectCompiler.php:110
Calls 8
- static-call Domain::unknown() line 174
- function-call
countline 176 - method-call QueryState::reject() line 177
- method-call QueryState::with() line 180
- static-call Domain::literal() line 183
- function-call
is_intline 185 - function-call
is_numericline 185 - function-call
maxline 189
public function join(QueryState $state, list<Domain> $arguments, string $method): QueryStateParameters
$state | QueryState | |
$arguments | list<Domain> | A simple join between two columns. |
$method | string |
Returns
Test cases 1
Called from 1
Calls 7
- function-call
countline 200 - method-call QueryState::reject() line 201
- function-call
is_stringline 204 - function-call
in_arrayline 204 - static-call Domain::literal() line 210
- method-call Grammar::wrap() line 210
- method-call QueryState::append() line 213
Private surface 1§
Implementation details, listed for orientation only.
private Grammar $grammarTest cases 17§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 11
ClausesTest::testApplyDispatchesModifiersAndRejectsUnknownOperationscallsClausesTest::testApplySelectsTheCorrectClausecallsClausesTest::testColumnsRequiresCompletePositionalArrayscallsClausesTest::testFromSetsTheTableWithAnOptionalAliascallsClausesTest::testGroupAppendsIdentifiersAndRetainsUnknownColumnscallsClausesTest::testHavingCompilesComparisonsWithTheirBooleanscallsClausesTest::testJoinQuotesBothColumnOperandsWithoutBindingscallsClausesTest::testNumberKeepsUnknownLimitsOpenAndIgnoresNegativeOnescallsClausesTest::testOrderValidatesDirectionAndHonorsDescendingcallsClausesTest::testRawKeepsBindingsInTheirComponentcallsClausesTest::testSelectResetsBindingsAndAddSelectDeduplicatesColumnscalls
Other tests reaching this symbol 6
Relations§
Instantiated in 5
- new SqlCatalog\Extension\Laravel\BuilderCalls::connectionCall() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:194
- new SqlCatalog\Extension\Laravel\BuilderCalls::mutate() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:233
- new SqlCatalog\Extension\Laravel\SelectCompiler::compile() packages/sql-catalog/src/Extension/Laravel/SelectCompiler.php:55
- new SqlCatalog\Extension\Laravel\SelectCompiler::page() packages/sql-catalog/src/Extension/Laravel/SelectCompiler.php:110
- new SqlCatalog\Extension\Laravel\SelectCompiler::total() packages/sql-catalog/src/Extension/Laravel/SelectCompiler.php:175
Method calls 5
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::connectionCall() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:194
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::mutate() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:233
- method-call SqlCatalog\Extension\Laravel\SelectCompiler::compile() packages/sql-catalog/src/Extension/Laravel/SelectCompiler.php:55
- method-call SqlCatalog\Extension\Laravel\SelectCompiler::page() packages/sql-catalog/src/Extension/Laravel/SelectCompiler.php:110
- method-call SqlCatalog\Extension\Laravel\SelectCompiler::total() packages/sql-catalog/src/Extension/Laravel/SelectCompiler.php:175