Стандартное расположение для плагина для сохранения / кэширования файлов?


9

Существуют ли официальные инструкции о том, где плагин должен кэшировать файлы?

Если нет, есть ли лучшая практика, которой я могу следовать?

Например, плагин получает содержимое из серверной системы и получает выгоду от кэширования файла, поэтому он не получает несколько раз одно и то же содержимое из серверной части.

Поиск здесь и в других местах сложен, так как большинство запросов приводят к плагинам кэширования или учебным пособиям по базам данных.

Мой инстинкт говорит, чтобы поместить их в подкаталог wp-content/uploads.

Мой вторичный инстинкт должен был бы держать файлы в дереве каталогов плагина. Это сохраняет данные плагина сгруппированными, но не следует (как представляется) архитектуре WordPress, в которой находится пользовательский контент /uploads.

Ответы:


6

Было бы неплохо, если бы в WordPress был каталог для кэширования, основанный на стандартах, но, поскольку его нет, я думаю, что лучшим вариантом будет сохранить его в самой папке плагина.

Загрузки, по моему мнению, для реальных загрузок, а файлы кеша на самом деле не рассматриваются как таковые. Я думаю, что легче управлять, уменьшает возможные конфликты и, честно говоря, это то, где я бы посмотрел, если плагин имеет эту функциональность.

tl; dr: файлы кэша являются частью функциональности конкретного плагина и должны быть упакованы вместе с ним.


1
Проблема этого подхода заключается в том, что многие люди отключают доступ для записи из чего угодно, кроме папки загрузки.
крафтнер

1
Когда плагин обновляется, WP полностью удаляет старый плагин и воссоздает его с нуля. Таким образом, даже если вы устанавливаете разрешения специально для каталога кэша в плагине, каждое обновление будет удалять не только кэшированные файлы, но и любые следы этих разрешений на запись.
Джейсон

Я видел пару, делающую WP_CONTENT_DIR / cache, и я думаю, что я собираюсь перейти к этому после того, как какое-то время находился в папке с плагинами. Как сказал Джейсон, данные могут быть излишне потеряны, и, кроме того (хотя это и не проблема для обычных пользователей), размер папки плагина может увеличиваться непропорционально, в то время как мне нравится воспринимать эту папку как достоверное представление о том, что получилось из коробки.
Люк Сончак

1

Если вам не нужно хранить очень большие данные, вам следует обратиться к Wordpress Transient API:

http://codex.wordpress.org/Transients_API

Ваши данные будут обрабатываться Wordpress с истечением срока. Я думаю, что это более "WordPress" способ кеширования данных.


В этом случае данные могут быть довольно большими ... но мне очень нравится этот переходный подход для небольших вещей. Спасибо за указание на это. :)
Мэтью Бакайтис

0

Сидеть с такой же "проблемой". Сначала я думал о том, чтобы сохранить этот кеш как опцию, но мой кеш просто был слишком большим, так что это не сработало. Так что, возможно, это альтернатива, если ваш кеш никогда не будет очень большим. Например, если вы общаетесь с API и можете выполнять только несколько запросов в час, и ответ на него не слишком длинный. :)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.