classBuilderCalls
final class BuilderCalls
Laravel factories and mutations executed by the ordinary expression evaluator.
Constants§
public const QUERY = 'Illuminate\Database\Query\Builder'The framework contract identified by query.
public const CONNECTION = 'Illuminate\Database\Connection'The framework contract identified by connection.
public const FACADE = 'Illuminate\Support\Facades\DB'The framework contract identified by facade.
public const CONNECTION_CONTRACTS = ['Illuminate\Database\ConnectionInterface', 'Illuminate\Database\DatabaseManage…The framework contracts an injected connection is declared with, which share the connection's calls.
public const MAX_ALTERNATIVES = 8How many builder alternatives one receiver keeps before its state is marked open.
Methods§
public function __construct(
private ProgramIndex $index,
private ?string $dialect = null,
private ?CallbackModel $callbacks = null,
private Dialects $dialects = new \SqlCatalog\Core\Sql\Dialects(),
)Configures the source metadata and SQL grammar used by this model.
Parameters
$index | ProgramIndex | |
$dialect | ?string | |
$callbacks | ?CallbackModel | |
$dialects | Dialects |
public function isBuilder(?string $className): boolWhether a class is a query builder, Eloquent builder or Eloquent model.
Parameters
$className | ?string |
Returns
boolTest cases 1
Called from 1
Calls 5
- method-call ProgramIndex::isInstanceOf() line 72
- class-const BuilderCalls::QUERY() line 72
- class-const ModelMetadata::BUILDER() line 73
- method-call ModelMetadata::recognizes() line 74
- new ModelMetadata line 74
public function staticCall(
string $className,
string $method,
list<Domain> $arguments,
Environment $environment,
?CallLike $call = null,
?FunctionScope $scope = null,
?ExpressionEvaluator $expressions = null,
): ?DomainParameters
$className | string | |
$method | string | |
$arguments | list<Domain> | A modelled static factory, or null for other classes. |
$environment | Environment | |
$call | ?CallLike | |
$scope | ?FunctionScope | |
$expressions | ?ExpressionEvaluator |
Returns
Test cases 1
Called from 1
Calls 13
- function-call
strtolowerline 82 - function-call
strcasecmpline 83 - class-const BuilderCalls::FACADE() line 83
- method-call BuilderCalls::connectionCall() line 84
- new QueryState line 84
- static-call Domain::literal() line 84
- method-call ModelMetadata::recognizes() line 86
- new ModelMetadata line 86
- method-call BuilderCalls::allocate() line 89
- class-const ModelMetadata::BUILDER() line 89
- method-call ModelMetadata::state() line 89
- method-call BuilderCalls::callback() line 91
- method-call BuilderCalls::mutate() line 97
public function methodCall(
Domain $receiver,
string $method,
list<Domain> $arguments,
Environment $environment,
?CallLike $call = null,
?FunctionScope $scope = null,
?ExpressionEvaluator $expressions = null,
): ?DomainParameters
$receiver | Domain | |
$method | string | |
$arguments | list<Domain> | A modelled connection or builder method, or null. |
$environment | Environment | |
$call | ?CallLike | |
$scope | ?FunctionScope | |
$expressions | ?ExpressionEvaluator |
Returns
Test cases 1
Called from 1
Calls 17
- method-call Domain::type() line 105
- function-call
strtolowerline 106 - method-call BuilderCalls::isConnection() line 107
- method-call Domain::soleObject() line 108
- new QueryState line 109
- static-call Domain::literal() line 109
- method-call BuilderCalls::connectionDialect() line 109
- static-call QueryState::from() line 109
- method-call BuilderCalls::connectionCall() line 111
- method-call BuilderCalls::isBuilder() line 113
- new ObjectTerm line 118
- class-const BuilderCalls::QUERY() line 118
- method-call BuilderCalls::callback() line 119
- function-call
array_mergeline 120 - method-call BuilderCalls::mutate() line 120
- method-call BuilderCalls::bounded() line 123
- method-call Environment::objects() line 124
Parameters
Returns
Test cases 1
Called from 1
Calls 4
- function-call
countline 135 - class-const BuilderCalls::MAX_ALTERNATIVES() line 135
- static-call Domain::fromTerms() line 136
- static-call QueryState::from() line 139
public function callback(
CallLike $call,
ObjectTerm $object,
string $method,
list<Domain> $arguments,
Environment $environment,
FunctionScope $scope,
ExpressionEvaluator $expressions,
): ?DomainApplies framework callback semantics while retaining the ordinary object's identity.
Parameters
$call | CallLike | |
$object | ObjectTerm | |
$method | string | |
$arguments | list<Domain> | |
$environment | Environment | |
$scope | FunctionScope | |
$expressions | ExpressionEvaluator |
Returns
Test cases 1
Called from 2
Calls 1
- method-call Environment::objects() line 151
public function isConnection(?string $class): boolWhether the receiver has a built-in Illuminate connection contract.
Parameters
$class | ?string |
Returns
boolTest cases 2
Called from 2
Calls 4
- method-call ProgramIndex::isInstanceOf() line 162
- class-const BuilderCalls::CONNECTION() line 162
- method-call Dialects::hasConnection() line 162
- class-const BuilderCalls::CONNECTION_CONTRACTS() line 165
public function connectionDialect(?string $class): ?stringThe grammar implied by a concrete connection, otherwise the configured grammar.
Parameters
$class | ?string |
Returns
?stringTest cases 2
Called from 1
Calls 1
- method-call Dialects::connection() line 179
public function connectionCall(
string $method,
list<Domain> $arguments,
QueryState $state,
Environment $environment,
): ?DomainParameters
$method | string | |
$arguments | list<Domain> | Connection factories and raw expressions. |
$state | QueryState | |
$environment | Environment |
Returns
Test cases 3
Called from 2
Calls 12
- function-call
countline 187 - static-call Domain::of() line 188
- method-call BuilderCalls::allocate() line 188
- new QueryState line 188
- class-const BuilderCalls::CONNECTION() line 191
- function-call
in_arrayline 193 - method-call Clauses::from() line 194
- new Clauses line 194
- new Grammar line 194
- static-call Domain::literal() line 194
- class-const BuilderCalls::QUERY() line 195
- method-call Environment::objects() line 196
public function allocate(string $class, QueryState $state): ObjectTermA fresh identity even when the same allocation executes repeatedly.
Parameters
$class | string | |
$state | QueryState |
Returns
Test cases 16
CallbackEffectsTest::testApplyFollowsMutationsOfTheCallbackParametercallsCallbackEffectsTest::testApplyRunsClosureEffectsThroughCapturedAliasesOfItsReceivercallsBuilderCallsTest::testAllocateNeverReusesAnIdentityForTheSameStatecallsBuilderCallsTest::testExecutionFindRetainsItsPredicateAndTheModelReturnTypecallsBuilderCallsTest::testExecutionPreservesFirstLimitAndReturnsACollectionForGetcallsBuilderCallsTest::testExecutionRetainsTheWindowOfSingleRowReadsAndTheirReturnTypescallsBuilderCallsTest::testExecutionReturnsTheFrameworkTypeWithoutInventingAnotherQuerycallsBuilderCallsTest::testMethodCallMutatesTheExistingIdentityAndLeavesOtherClassesAlonecallsBuilderCallsTest::testMutateNamesTheUnmodelledOperationInItsDiagnosticcallsBuilderCallsTest::testMutateOnlyChangesSoftDeleteModesForModelsUsingTheTraitcallsBuilderCallsTest::testMutateRetainsEarlierUnknownEffectscallsBuilderCallsTest::testMutateTreatsIdentityCallsAndEagerLoadsWithoutOpeningTheQuerycallsBuilderCallsTest::testUnsupportedInvalidatesAliasesWithoutLosingTheirIdentitycallsCallbackModelTest::testApplyRunsSourceDeclaredLocalScopescallsCallbackModelTest::testConditionalKeepsBothOutcomesOfWhenAndUnlesscallsCallbackModelTest::testNestedRestoresOuterClausesAndGroupsOnlyNewPredicatescalls
Called from 4
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::staticCall() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:89
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::connectionCall() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:188
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::connectionCall() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:191
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::connectionCall() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:195
Calls 2
- new ObjectTerm line 211
- method-call QueryState::array() line 211
public function mutate(
ObjectTerm $object,
string $method,
list<Domain> $arguments,
Environment $environment,
): DomainParameters
$object | ObjectTerm | |
$method | string | |
$arguments | list<Domain> | Applies one effect, preserving identity and any earlier gaps. |
$environment | Environment |
Returns
Test cases 4
BuilderCallsTest::testMutateNamesTheUnmodelledOperationInItsDiagnosticcallsBuilderCallsTest::testMutateOnlyChangesSoftDeleteModesForModelsUsingTheTraitcallsBuilderCallsTest::testMutateRetainsEarlierUnknownEffectscallsBuilderCallsTest::testMutateTreatsIdentityCallsAndEagerLoadsWithoutOpeningTheQuerycalls
Called from 2
Calls 13
- static-call QueryState::from() line 219
- new Grammar line 220
- method-call Dialects::find() line 220
- function-call
in_arrayline 221 - class-const BuilderCalls::IDENTITY() line 221
- static-call Domain::literal() line 224
- method-call Predicates::nulls() line 227
- new Predicates line 227
- method-call Predicates::apply() line 232
- method-call Clauses::apply() line 233
- new Clauses line 233
- method-call Environment::objects() line 237
- static-call Domain::of() line 239
public function execution(
Domain $receiver,
string $method,
list<Domain> $arguments,
Environment $environment,
): DomainRetains terminal calls' persistent mutations and identifies their return values.
Parameters
$receiver | Domain | |
$method | string | |
$arguments | list<Domain> | |
$environment | Environment |
Returns
Test cases 5
BuilderCallsTest::testExecutionFindRetainsItsPredicateAndTheModelReturnTypecallsBuilderCallsTest::testExecutionPreservesFirstLimitAndReturnsACollectionForGetcallsBuilderCallsTest::testExecutionRetainsTheWindowOfSingleRowReadsAndTheirReturnTypescallsBuilderCallsTest::testExecutionReturnsTheFrameworkTypeWithoutInventingAnotherQuerycallsBuilderCallsTest::testMutateNamesTheUnmodelledOperationInItsDiagnosticcalls
Called from 1
Calls 15
- static-call QueryState::from() line 254
- new Grammar line 255
- method-call Dialects::find() line 255
- function-call
in_arrayline 256 - static-call Domain::literal() line 257
- method-call SelectCompiler::key() line 261
- new SelectCompiler line 261
- static-call Domain::unknown() line 261
- class-const BuilderCalls::EXECUTIONS() line 262
- method-call Environment::objects() line 266
- static-call Domain::fromTerms() line 266
- method-call Domain::soleObject() line 267
- static-call Domain::opaque() line 279
- static-call TypeShape::of() line 279
- class-const Origin::Call() line 279
public function positional(list<Arg> $arguments): boolParameters
$arguments | list<Arg> | Named/unpacked calls need argument normalization before modelling. |
Returns
boolTest cases 1
public function unsupported(Domain $receiver, Environment $environment, string $reason): DomainA bad overload keeps the builder identity so its eventual execution remains visible.
Parameters
$receiver | Domain | |
$environment | Environment | |
$reason | string |
Returns
Called from 3
- method-call SqlCatalog\Extension\Laravel\BuilderCalls::unsupported() packages/sql-catalog/src/Extension/Laravel/BuilderCalls.php:308
- method-call SqlCatalog\Extension\Laravel\CallModel::evaluate() packages/sql-catalog/src/Extension/Laravel/CallModel.php:54
- method-call SqlCatalog\Extension\Laravel\CallbackModel::nested() packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:114
Calls 7
- static-call QueryState::from() line 304
- method-call Environment::objects() line 305
- new ArrayTerm line 308
- function-call
array_mapline 308 - new ArrayEntry line 308
- method-call BuilderCalls::unsupported() line 308
- static-call Domain::fromTerms() line 313
Private surface 7§
Implementation details, listed for orientation only.
private const IDENTITY = ['query', 'newquery', 'tobase', 'getquery', 'withoutglobalscopes', 'withoutglob…private const EXECUTIONS = ['get', 'all', 'pluck', 'count', 'sum', 'avg', 'min', 'max', 'exists', 'doesnte…private int $allocations = 0private ProgramIndex $indexprivate ?string $dialect = nullprivate ?CallbackModel $callbacks = nullprivate Dialects $dialects = new \SqlCatalog\Core\Sql\Dialects()Test cases 34§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 22
BuilderCallsTest::testAllocateNeverReusesAnIdentityForTheSameStatecallsBuilderCallsTest::testBoundedMarksTooManyAlternativesAsOneOpenStateInsteadOfLosingEffectscallsBuilderCallsTest::testCallbackReturnsNullWithoutARegisteredRunnercallsBuilderCallsTest::testConnectionCallAliasesTheTableAndKeepsUnknownTablesOpencallsBuilderCallsTest::testConnectionCallAllocatesIndependentQueriesAndExplicitRawExpressionscallsBuilderCallsTest::testConnectionCallPreservesRawSqlAndAnExplicitConnectionNamecallsBuilderCallsTest::testConnectionDialectUsesConcreteConnectionsBeforeTheFallbackcallsBuilderCallsTest::testExecutionFindRetainsItsPredicateAndTheModelReturnTypecallsBuilderCallsTest::testExecutionPreservesFirstLimitAndReturnsACollectionForGetcallsBuilderCallsTest::testExecutionRetainsTheWindowOfSingleRowReadsAndTheirReturnTypescallsBuilderCallsTest::testExecutionReturnsTheFrameworkTypeWithoutInventingAnotherQuerycallsBuilderCallsTest::testIsBuilderRecognizesSourceDeclaredModelsAndBothBuilderContractscallsBuilderCallsTest::testIsConnectionRecognizesConcreteGrammarContractscallsBuilderCallsTest::testIsConnectionRecognizesInjectedConnectionContractscallsBuilderCallsTest::testMethodCallMutatesTheExistingIdentityAndLeavesOtherClassesAlonecallsBuilderCallsTest::testMutateNamesTheUnmodelledOperationInItsDiagnosticcallsBuilderCallsTest::testMutateOnlyChangesSoftDeleteModesForModelsUsingTheTraitcallsBuilderCallsTest::testMutateRetainsEarlierUnknownEffectscallsBuilderCallsTest::testMutateTreatsIdentityCallsAndEagerLoadsWithoutOpeningTheQuerycallsBuilderCallsTest::testPositionalRejectsNamedAndUnpackedArgumentscallsBuilderCallsTest::testStaticCallCreatesFacadeQueriesAndDoesNotModelUnrelatedStaticscallsBuilderCallsTest::testUnsupportedInvalidatesAliasesWithoutLosingTheirIdentitycalls
Other tests reaching this symbol 12
CallEvaluatorTestcallsCallbackEffectsTest::testApplyFollowsMutationsOfTheCallbackParametercallsCallbackEffectsTest::testApplyRunsClosureEffectsThroughCapturedAliasesOfItsReceivercallsBuilderQueriesTestcallsCallbackModelTest::testApplyRunsSourceDeclaredLocalScopescallsCallbackModelTest::testCheckedPreservesAVisibleGapWhenTheCallbackExceedsItsBudgetcallsCallbackModelTest::testClosedRejectsWidenedResultsAndForeignIdentitiescallsCallbackModelTest::testConditionalKeepsBothOutcomesOfWhenAndUnlesscallsCallbackModelTest::testNestedRestoresOuterClausesAndGroupsOnlyNewPredicatescallsCallModelTestcallsLaravelExtensionTestcallsAnalyzerTestcalls
Relations§
Instantiated in 3
- new SqlCatalog\Extension\Laravel\BuilderQueries::statements() packages/sql-catalog/src/Extension/Laravel/BuilderQueries.php:56
- new SqlCatalog\Extension\Laravel\CallModel::__construct() packages/sql-catalog/src/Extension/Laravel/CallModel.php:27
- new SqlCatalog\Extension\Laravel\CallbackModel::nested() packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:114
Method calls 8
- method-call SqlCatalog\Extension\Laravel\BuilderQueries::statements() packages/sql-catalog/src/Extension/Laravel/BuilderQueries.php:56
- method-call SqlCatalog\Extension\Laravel\CallModel::evaluate() packages/sql-catalog/src/Extension/Laravel/CallModel.php:41
- method-call SqlCatalog\Extension\Laravel\CallModel::evaluate() packages/sql-catalog/src/Extension/Laravel/CallModel.php:48
- method-call SqlCatalog\Extension\Laravel\CallModel::evaluate() packages/sql-catalog/src/Extension/Laravel/CallModel.php:50
- method-call SqlCatalog\Extension\Laravel\CallModel::evaluate() packages/sql-catalog/src/Extension/Laravel/CallModel.php:53
- method-call SqlCatalog\Extension\Laravel\CallModel::evaluate() packages/sql-catalog/src/Extension/Laravel/CallModel.php:54
- method-call SqlCatalog\Extension\Laravel\CallModel::matchesClass() packages/sql-catalog/src/Extension/Laravel/CallModel.php:63
- method-call SqlCatalog\Extension\Laravel\CallbackModel::nested() packages/sql-catalog/src/Extension/Laravel/CallbackModel.php:114