28 февраля, 2014

Настройка производительности Drupal 7 с помощью Drush

Управляем настройками производительности Друпал с помощью Драш.
Пример рассматривается в версии Drupal 7.26 , Drush 6.0

(Поисковая строка gs: 'drush performance settings')

Вопрос в следующем: моя среда разработки должна иметь кэши выключенными, и я хочу избежать регулярное посещение страницы
//example.com/admin/config/development/performance
всякий раз, когда я обновляю БД.



Состояние переменных, отвечающих за кэширование и агрегацию можно проверить из драша командой vget:

drush vget cache --exact
cache: 1

Кеширование страниц находится во включенном состоянии.

Опция --exact указывает, что нужно вывести данные в точном соответствии указанному ключу. В данном случае ключ 'cache'.
Без этой опции будут выведены все переменные, которые содержат в своем имени строку 'cache'.

Пара строк из справки Drush 6.0:
 variable-get (vget)   Get a list of some or all site variables and values.
 variable-set (vset)   Set a variable.

Освежить подробные сведения о комманде можно так:
drush -h vget

Проверим состояние еще нескольких переменных:

drush vget preprocess_css --exact
preprocess_css: 1
drush vget preprocess_js --exact
preprocess_js: 1

Агрегация скриптов и стилей активна.

drush vget block_cache
block_cache: 1

Кеширование блоков также активно.

Установить нужные значения можно командой vset.

Выполним для отключения кеширования:

drush vset cache 0
drush vset preprocess_css 0
drush vset preprocess_js 0

Можно обновить страницу настроек производительности Drupal, чтоб увидеть какие флажки исчезли.
Этого для девелопмента пока достаточно. Кеширование блоков оставим включенным. В случае необходимости очистки кеша блоков, можно использовать команду drush cc.

Известна также возможность установить переменные конфигурации Drupal в файле settings.php
Например, обратите внимание на эти строки:
# $conf['site_name'] = 'My Drupal site';
# $conf['theme_default'] = 'garland';
# $conf['anonymous'] = 'Visitor';

$conf['cache'] = 0;          //page cache    
$conf['preprocess_css'] = 0; //optimize css
$conf['preprocess_js'] = 0;  //optimize javascript

# $conf['page_cache_maximum_age'] =  0; 
# $conf['block_cache'] = 1; 
# $conf['views_skip_cache'] = 1;

Вот и все, за дополнительной информацией можно обратиться к приведенной ссылке на 'Drupal Answers'.
Также можно воспользоваться строкой поискового запроса: 'drush performance settings'