Класс: DataLoaderService v200.4.1
Static-фасад загрузки и записи строк DLE через Cycle Database с кешированием SELECT.
Краткое содержание
Загружает и изменяет строки таблиц DLE через Cycle Database. Static API — БД из Application::instance()->database().
Путь: devcraft/src/classes/Support/DataLoaderService.php
См. также: QueryBuilder, DleDataService, гайд DataLoader
Условия фильтрации (conditions)
Общий разбор для SELECT (loadData), UPDATE и DELETE. Передаются через массив conditions или QueryBuilder.
| Формат | Поведение |
|---|---|
'колонка' => значение | Равенство |
'колонка' => ['op' => 'in', 'value' => $ids] | IN через Parameter |
'колонка' => ['op' => 'like', 'value' => '%…%'] | LIKE |
'колонка' => ['op' => 'find_in_set', 'value' => $id] | Expression('FIND_IN_SET(?, \колонка`)', $id)` — значение только в плейсхолдере, не склеивается в SQL |
'колонка' => ['op' => $op, 'value' => $v] | Прочие операторы Cycle where |
'_or' => [ [...], [...] ] | Группа «или»: каждый элемент списка — набор через и; элементы — через или; с внешними условиями группа через и |
Пример с _or и тремя операторами — в QueryBuilder.
Методы
- public static loadData()
- public static loadOne()
- public static insert()
- public static update()
- public static delete()
- public static clearCache()
loadData()
DataLoaderService::loadData(array|QueryBuilder $args): array
Загружает данные таблицы DLE с кешированием. Dual accept: массив или QueryBuilder.
С версии: 173.3.0 (static с 200.4.0)
loadOne()
DataLoaderService::loadOne(array|QueryBuilder $args): array
Первая строка или [].
С версии: 200.4.0
insert()
DataLoaderService::insert(QueryBuilder $query): array
INSERT по values, затем reload по primaryKey (по умолчанию id) и lastInsertId. Возвращает созданную строку или [].
С версии: 200.4.0
update()
DataLoaderService::update(QueryBuilder $query): array
UPDATE по values + conditions, затем SELECT всех совпавших строк. В values допускаются Fragment (например pm_all+1).
С версии: 200.4.0
delete()
DataLoaderService::delete(QueryBuilder $query): bool
DELETE по conditions. Без conditions не выполняется (защита от полной очистки таблицы). true при успехе, false при ошибке или пустых conditions.
С версии: 200.4.0
clearCache()
DataLoaderService::clearCache(?string $key = null): void
Очищает кеш загрузчика целиком или по ключу.