Defines a database-backed CmdK collector.
A Collector is responsible for domain-specific discovery.
It builds the maximum candidate set of searchable entities and materializes them into CmdK Action DTOs.
It MUST:
It MUST NOT:
Visibility is applied exclusively via paired VisibilityConstrainer implementations in the search pipeline.
query() → discovery (what could be shown) constrain → visibility filtering (external) collect() → materialization (what will be shown)
The Collector is intentionally split into query-building and materialization to guarantee that:
CmdK Layer:
Security Layer:
Collectors MUST remain unaware of Security internals.
| Methods | ||
|---|---|---|
public
|
count(string $search, SdkContext $context): int
|
# |
public
|
query(string $search, SdkContext $context): Builder
|
# |
public
|
collect(Builder $query, SdkContext $context): Action[]
|
# |