Не имеет значения для кэширования, если вы используете views или db_query (). Кэширование работает всегда одинаково, то, как данные выбираются, когда кэш пропускает, полностью зависит от вас.
- Создайте идентификатор кэша, чтобы идентифицировать вашу запись в кэше. Может быть простой, жестко закодированной строкой или чем-то сложным, основанным на аргументах и так далее.
- Проверьте, можете ли загрузить из кеша.
- Если нет, пересоберите данные и поместите их в кеш с желаемым сроком действия.
Чтобы увидеть некоторые примеры, вы можете взглянуть на функции, которые используют cache_get () , например variable_initialize () .
Если ваша функция вызывается несколько раз, вы, вероятно, захотите объединить ее со статическим кешем, см., Например, archiver_get_info () . И если перестройка данных действительно медленная, вы можете предотвратить ее многократное использование, используя платформу блокировки, как variable_initialize ().
Обратите внимание, что кэширование одного запроса имеет смысл только в том случае, если он медленный, потому что cache_get () также является запросом базы данных, если вы не используете альтернативный серверный кеш, такой как Memcache.
И наконец, в представлениях уже встроено кэширование, и его можно настроить в своем представлении. Так что это может быть вариант.