Как я освобождаю Кэш Drupal (без Devel)

В источнике ToolsAPI.pas существуют некоторые API-интерфейсы для отладки. Вам можно сообщить, когда событие отладки имело место, информация о точках останова, какой процесс отлаживается и т.д. с этим API. Но кажется, что нет никакой поддержки переменных или значений их. Таким образом, нет никакого простого способа реализовать Вашу реквизицию без ужасных взломов.

20
задан iconoclast 27 September 2012 в 18:22
поделиться

6 ответов

Имена файлов можно легко передать в командной строке приложения. Это можно сделать либо как аргумент для основного метода (после имени основного класса), либо как свойство (как, я полагаю, намекает Аперкинс) с использованием флага -D .

вы можете посмотреть Как очистить кеш на стороне сервера Drupal

44
ответ дан 29 November 2019 в 22:32
поделиться

Вы также можете использовать модуль Drush , который позволяет использовать командную строку для выполнения популярных команд Drupal, таких как "drush cron" или "drush cache clear".

20
ответ дан 29 November 2019 в 22:32
поделиться

У меня есть самое простое решение для этого. Установите модуль admin_menu (собственно не только для этого, раз уж вы его установили, вы точно не пожалеете, ссылка: http://drupal.org/project/admin_menu ). Хорошо, тогда в недавно появившемся верхнем раскрывающемся меню наведите указатель мыши на свой значок, и появится раскрывающееся меню, и вы увидите: меню Очистить все кеши. Один щелчок - один промыв. Более того, вы можете очистить все кеши вместе или выбрать, что очищать: страницы, меню, темы и т. Д. Попробуйте, и вы никогда не вернетесь назад)

4
ответ дан 29 November 2019 в 22:32
поделиться

Было бы прекрасно, если бы вы могли просто ПОЛУЧИТЬ поведение, нажав:
http://drupal.local./admin/settings/performance?op=Clear%20cached%20data
, но вы не можете.
Однако я хочу отметить URL-адрес для быстрого перехода через меню администратора (используйте последнюю часть):
http: //drupal.local. / admin / settings / performance

3
ответ дан 29 November 2019 в 22:32
поделиться

Очистку по требованию можно выполнить в Администрирование> Конфигурация сайта> Производительность.

Вы должны настроить задание cron на запуск каждый час (или с любым другим интервалом по вашему усмотрению).

Когда cron запущен в Drupal, все кеши очищаются и перестраиваются без необходимости делать это вручную.

Если этот вопрос относится к тематике, вам следует отключить механизмы кэширования (агрегирование css / js), и вам не придется очищать данные кеша при внесении изменений.

1
ответ дан 29 November 2019 в 22:32
поделиться

ПРЕДСТАВЬТЕ:

Мне пришлось деинсталлировать модуль "devel" (он был несовместим со специальными пунктами меню, которые мне были нужны еще хуже), поэтому я сделал свой собственный.

Везде, где вы видите MODULENAME, замените его именем вашего модуля.

ЭТАП 1: Добавьте в любой модуль (желательно один из ваших пользовательских модулей) в HOOK_MENU перед строкой «return $items»:

// short cut for flushing the caches:
$items['flush-cache'] = array(
  'type' => MENU_CALLBACK,
  'title' => t('Flush the cache'),
  'description' => 'MODULENAME Custom Cache Flush',
  'page callback' => 'MODULENAME_flush_cache',
  'access callback' => TRUE,
);

ШАГ 2: Теперь в том же файле модуля, где он не находится «внутри» какой-либо другой функции, добавьте:

/**  Page callback  **/
function MODULENAME_flush_cache() {
  drupal_flush_all_caches();
  return 'Caches were flushed.';
}

Теперь вы можете просто перейти по URL-адресу «/flush-cache» на своем сайте, чтобы очистить кеш. (После того, как вы в последний раз очистите кэш по-старому.)

ШАГ 3: Если вы хотите, чтобы это было ДЕЙСТВИТЕЛЬНО удобно, добавьте следующее в файл page.tpl.php. Вы можете разместить его где угодно между и . ПРИМЕЧАНИЕ. $my_is_test — это переменная, которую я использую, и она принимает значение TRUE в моей тестовой системе и FALSE в рабочей среде. Если у вас нет чего-то подобного, замените его на TRUE или FALSE, чтобы включить или выключить его:

<?php if ($my_is_test): ?>
<a style="text-align:left; position:absolute; right:2px; top:20px;" href="<?=$base_path?>flush-cache" onclick="this.innerHTML = '<b><blink><big>Wait...</big></blink></b>';">flush</a>
<? endif; ?>

И вуаля! У вас есть ссылка «скрыть» в правом верхнем углу каждой страницы, на которую вы можете нажать. Не стесняйтесь менять значения «справа» и «сверху» (или менять «справа» на «слева» или «сверху» на «снизу», чтобы разместить их там, где вам нравится. Это позиционирование ссылок работает только в современных браузерах, но это только для вас, так что это не должно быть проблемой, верно?

1
ответ дан 29 November 2019 в 22:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: