CollectionEngine
class CollectionEngine extends Engine
In-memory search engine using database queries and Collection filtering.
Useful for testing without requiring an external search service.
Properties
| protected EngineOperationRunner|null | $operationRunner | The operation runner assigned to this engine. |
from Engine |
| protected string | $operationRunnerEngineName | The configured name of this engine. |
from Engine |
Methods
Pluck and return the primary keys of the given results.
Get the total count from a raw result returned by the engine.
Create a search index.
Delete a search index.
Assign the operation runner to this engine.
Update the given models without observing an external index operation.
Delete the given models without observing an external index operation.
Run a Builder operation through the operation runner.
Pluck and return the primary keys of the given results using the given key name.
Ensure that soft delete handling is properly applied to the query.
Details
at line 27
void
update(Collection $models)
Update the given models in the search index.
at line 43
void
delete(Collection $models)
Remove the given models from the search index.
at line 61
mixed
search(Builder $builder)
Perform a search against the engine.
at line 83
mixed
paginate(Builder $builder, int $perPage, int $page)
Perform a paginated search against the engine.
at line 209
Collection
mapIds(mixed $results)
Pluck and return the primary keys of the given results.
at line 224
Collection
map(Builder $builder, mixed $results, Model $model)
Map the given results to instances of the given model.
at line 253
LazyCollection
lazyMap(Builder $builder, mixed $results, Model $model)
Map the given results to instances of the given model via a lazy collection.
at line 281
int
getTotalCount(mixed $results)
Get the total count from a raw result returned by the engine.
at line 289
void
flush(Model $model)
Flush all of the model's records from the engine.
at line 305
mixed
createIndex(string $name, array $options = [])
Create a search index.
at line 313
mixed
deleteIndex(string $name)
Delete a search index.
in
Engine at line 102
Engine
setOperationRunner(EngineOperationRunner $runner, string $engineName)
Assign the operation runner to this engine.
Boot-only. The runner persists on this engine for the worker lifetime. Engines without observable operations retain no runner.
in
Engine at line 117
protected bool
hasObservableOperations()
Determine if this engine has operations worth observing.
at line 35
void
runUpdate(Collection $models)
Update the given models without observing an external index operation.
at line 51
void
runDelete(Collection $models)
Delete the given models without observing an external index operation.
in
Engine at line 205
mixed
runPaginate(Builder $builder, int $perPage, int $page)
Paginate through the operation runner.
at line 297
void
runFlush(Model $model)
Flush the given model without observing an external index operation.
in
Engine at line 255
mixed
runOperation(string $operation, Builder $builder, Closure $callback, string|null $index = null)
Run a Builder operation through the operation runner.
An omitted index uses the Builder's configured or searchable index. Pass an explicit index when the operation targets another dataset.
in
Engine at line 281
Collection
mapIdsFrom(mixed $results, string $key)
Pluck and return the primary keys of the given results using the given key name.
in
Engine at line 289
Collection
keys(Builder $builder)
Get the results of the query as a Collection of primary keys.
in
Engine at line 297
Collection
get(Builder $builder)
Get the results of the given query mapped onto models.
in
Engine at line 309
LazyCollection
cursor(Builder $builder)
Get a lazy collection for the given query mapped onto models.
at line 99
protected Collection
searchModels(Builder $builder)
Get the Eloquent models for the given builder.
at line 182
protected Builder
ensureSoftDeletesAreHandled(Builder $builder, Builder $query)
Ensure that soft delete handling is properly applied to the query.
The withTrashed/onlyTrashed/withoutTrashed methods are added dynamically by SoftDeletingScope. We guard these calls with runtime checks for SoftDeletes usage, making them safe but not statically analyzable.