Использование хука updateN() для отключения dev модулей на продакшн сервере.

Это перевод статьи http://thedrupalblog.com/creating-module-update-function-disable-your-development-modules-when-deploying-production

Существует много классных модулей, облегчающих разработку под Друпал, таких как Devel, Coder, Reroute_Email, Demo и т.д., но скорее всего, в готовом проекте они во включенном состоянии нам не особо нужны.

Как их можно красиво и автоматизированно отключить? При развертывании сайта на продакшне нам на помощь приходят функции hook_update_N() , которые мы разместим в .install файле нашего кастомного модуля. С помощью этой функции мы можем выполнить кучу полезных административных задач. Сейчас я покажу вам, как создать _update функцию, которая будет отключать вспомогательные модули.

<?php
// NOTE: see the documentation on hook_update_N for version naming conventions
function MYMODULE_update_6100() {
 
 
// check for production environment hostname
 
if ($_SERVER['HTTP_HOST'] == 'your-production-hostname') {
   
   
// rebuild the module cache
   
module_rebuild_cache();
   
   
// define a list of development modules to disable
   
$modules_disable = array(
     
'reroute_email',
     
'coder',
     
'demo',
     
'performance',
     
'devel_node_access',
     
'devel_generate',
     
'devel_themer',
     
'devel',
    );
   
   
// disable modules
   
module_disable($modules_disable);

  }

}

?>

Теперь, когда у нас есть готовая _update функция, мы можем залить файлы на продакшн сервер (лучше для таких действий использовать subversion, конечно) и запустить скрипт update.php, который исполнит наш код и отключит ненужные модули.

Blog categories: 
16/12/2009 - 14:41

Comments

Хм... Большое спасибо!

Post new comment

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.

Об авторе

Drupal developer

Антон Сидашин

Веб-разработчик (подробнее)

Комментарии

rss