Я уже писал об использовании файлов cookie в WordPress раньше, но одна из особенностей этого заключается в том, что они обычно после этого срабатывают в контексте хука инициализации .
При работе в объектно-ориентированном стиле и попытке отделить определенные части логики, чтобы вы могли использовать их, не полагаясь на другие ловушки, важно найти способы справиться с этим.
В противном случае код становится тесно связанным, и вы можете повсюду использовать хуки, вызовы do_action или анонимные функции.
Чтобы имитировать природу файлов cookie и срок их действия, использование переходных процессов WordPress через API Transients с соответствующим названием может быть жизнеспособным решением.
Использование переходных процессов WordPress
Если вы знакомы с любым из API метаданных, которые есть в WordPress, то вы, вероятно, знакомы с функциями, которые они используют. Сюда входят стандартные операции, такие как добавление, получение, обновление и удаление.
А с WordPress вы можете во многих местах упростить обновление, получение и удаление, потому что update сначала увидит, существует ли часть информации, и, если нет, добавит ее.
Проектирование интерфейса класса
Таким образом, интерфейс класса, обертывающего Transients API, можно сократить до:
- установлен,
- получить,
- Удалить.
Где set заменяет add и update. Кроме того, хорошо иметь вспомогательные функции, такие как has, которые позволяют нам писать условные операторы в коде, который вызывает библиотеку.
Например, если вы хотите сделать что-то вроде «если это не имеет значения, то верните».
Таким образом, интерфейс для кода может выглядеть примерно так:
Есть некоторые предостережения, которые следует учитывать при работе с подобным кодом. То есть как насчет аутентифицированных и неаутентифицированных пользователей?
Когда это произойдет, может потребоваться другой способ обработки временных данных (в зависимости от вашего метода реализации, описанного выше).
Я могу рассказать об этом в следующем посте.
Слово предостережения
Однако следует помнить одну вещь: не стоит загрязнять таблицу параметров WordPress. И именно здесь хранятся переходные процессы.
Поэтому, если вы собираетесь использовать переходные процессы WordPress, убедитесь, что вы не добавляете массу значений в базу данных.
Как раз то, что нужно. А если нужно много данных, то, возможно, вам стоит посмотреть на архитектуру вашего кода или рассмотреть другой тип базы данных.