Использование хука updateN() для отключения dev модулей на продакшн сервере.
Существует много классных модулей, облегчающих разработку под Друпал, таких как 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, который исполнит наш код и отключит ненужные модули.

Comments
Хм... Большое спасибо!
Post new comment