Кэширование играет решающую роль в оптимизации производительности веб-сайтов Drupal 9. Однако могут возникнуть ситуации, когда вам потребуется отключить или очистить кеш программным способом. В этой статье мы рассмотрим различные методы и примеры кода для реализации переключателя уничтожения кэша в Drupal 9. Давайте углубимся!
Метод 1: использование команды Drush
Drush — мощный инструмент командной строки для Drupal. Вы можете создать собственную команду Drush для очистки кеша. Вот пример того, как это реализовать:
/
* Implements hook_drush_command().
*/
function mymodule_drush_command() {
$items['cache-killer'] = array(
'description' => 'Clears Drupal cache.',
'aliases' => array('ck'),
'callback' => 'mymodule_cache_killer',
);
return $items;
}
/
* Drush command callback.
*/
function mymodule_cache_killer() {
cache_clear_all('*', 'cache', TRUE);
drush_log('Cache cleared successfully.', 'success');
}
Метод 2: программная очистка кеша
Вы можете программно очистить кеш с помощью Drupal Cache API. Вот пример:
/
* Clear Drupal cache.
*/
function mymodule_cache_killer() {
cache_clear_all('*', 'cache', TRUE);
drupal_set_message(t('Cache cleared successfully.'));
}
Метод 3. Использование Cache API для детального управления.
Если вам нужен больший контроль над очисткой кеша, вы можете использовать Cache API для выборочной очистки определенных ячеек кеша. Вот пример:
/
* Clear specific cache bins.
*/
function mymodule_cache_killer() {
$cache_bins = array('cache_page', 'cache_menu', 'cache_views_data');
foreach ($cache_bins as $bin) {
cache_clear_all('*', $bin, TRUE);
}
drupal_set_message(t('Cache cleared successfully.'));
}
Метод 4: очистка кеша при отправке формы
Вы можете добавить действие по очистке кеша при отправке формы. Вот пример использования хука изменения формы:
/
* Implements hook_form_FORM_ID_alter().
*/
function mymodule_form_example_form_alter(&$form, &$form_state, $form_id) {
$form['#submit'][] = 'mymodule_cache_killer_submit';
}
/
* Form submission callback.
*/
function mymodule_cache_killer_submit($form, &$form_state) {
cache_clear_all('*', 'cache', TRUE);
drupal_set_message(t('Cache cleared successfully.'));
}
Наличие переключателя уничтожения кэша в Drupal 9 может оказаться неоценимым для разработчиков и администраторов. В этой статье мы рассмотрели несколько методов, дополненных примерами кода, для реализации механизма очистки кэша. Используя эти методы, вы можете оптимизировать производительность своего веб-сайта Drupal 9. Не забывайте использовать их разумно и только при необходимости. Удачного кэширования!