cached_item_repository
class cached_item_repository implements item_repository_interface
| internal |
Cache Decorator for the Item Repository.
Wraps an item_repository_interface to provide transparent MUC (Moodle Universal Cache)
caching for EAV items and their metadata, reducing database N+1 loads and hydration penalty.
Constants
| private CACHE_AREA |
|
Methods
Constructor mapping the inner repository instance via Depedency Injection.
Find an item by ID.
Delete an item and all related metadata.
Get all metadata associated with an item.
Save (insert/update) metadata entries.
Search items by metadata key/value pair.
Find all items of a given TYPE.
Details
at line 43
__construct(item_repository_interface $repository)
Constructor mapping the inner repository instance via Depedency Injection.
at line 50
item_interface
create(item_dto_interface $dto)
Create a new item from a DTO.
Must be atomic: Item + Metadata in a single transaction.
at line 63
item_interface|null
find_by_id(int $id)
Find an item by ID.
at line 73
item_interface
update(item_dto_interface $dto)
Update an existing item from a DTO.
Must be atomic: Item + Metadata in a single transaction.
at line 87
void
delete(int $id)
Delete an item and all related metadata.
at line 106
array
get_metadata(int $itemid)
Get all metadata associated with an item.
at line 116
void
save_metadata(int $itemid, array $metadata)
Save (insert/update) metadata entries.
Keys not provided must remain untouched.
at line 129
array
find_by_metadata(string $key, string $value)
Search items by metadata key/value pair.
at line 154
array
find_by_type(string $type)
Find all items of a given TYPE.
Must use efficient metadata loading to avoid N+1.