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

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

Существует много классных модулей, облегчающих разработку под Друпал, таких как 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: DrupalПереводы