item_search_repository
class item_search_repository
| internal |
Item search repository (query engine helper).
Responsibilities:
- Compile WHERE + JOIN SQL safely for complex search criteria
- Execute queries with pagination
- Bulk-load metadata for search results
- Delegate hydration to Mapper
Constants
| private TABLE |
|
| private TABLE_META |
|
Methods
array
run_query(array $where, array $meta, array $joins, array|null $select, int|null $page, int|null $per_page, string|null $sort = null)
Run a composed SQL query for item search.
int
count_query(array $where, array $meta, array $joins)
Count results for pagination (same WHERE/JOIN logic).
array
load_metadata_bulk(array $itemids, array $keys)
Load metadata for multiple items in one query.
hydrate_domain(stdClass $record, array $metadata, string $domain_class)
Convert DB row + metadata → Domain object.
Details
at line 51
__construct(item_mapper $mapper, sql_generator $generator)
Constructor.
at line 71
array
run_query(array $where, array $meta, array $joins, array|null $select, int|null $page, int|null $per_page, string|null $sort = null)
Run a composed SQL query for item search.
at line 99
int
count_query(array $where, array $meta, array $joins)
Count results for pagination (same WHERE/JOIN logic).
at line 117
array
load_metadata_bulk(array $itemids, array $keys)
Load metadata for multiple items in one query.
Solves N+1 problem.
at line 152
item_interface
hydrate_domain(stdClass $record, array $metadata, string $domain_class)
Convert DB row + metadata → Domain object.
Delegates to the Mapper to ensure the correct Domain Class is instantiated.