Ноя
11
2009

Оптимизация процесса написания своих модулей для drupal6

Когда пишешь свои модули для drupal, то при имплементации hook‘ов надо знать какие параметры и сколько приходит в функцию при её вызове. Приходится постоянно обращаться к справочнику. Плюс есть ряд определённых действий, которые приходится повторять. Например если мы описываем hook_nodeapi(), то, как правило, мы еще описываем конструкцию switch ($op). Можно конечно в среде разработки настроить шаблоны, которые будем вызывать и вставлять в код. Но есть способ лучше – использовать модуль под названием Module Builder. Этот модуль расширяет функции модуля drush, который, на мой взгляд, относится к группу must have для разработчиков на drupal. Как устанавливать и пользоваться модулем drush  я тут сейчас не описываю. Если надо подсказать – спрашивайте в комментах. Далее речь о module_builder Как мы сможем ускорить процеcc написания модуля для drupal? Написать простую команду в консоли, по результату выполнения которой мы будем иметь заготовку для модуля с уже объявленными функциями-хуками, которые нам нужны. Или если у нас уже есть свой модуль и нам надо добавить в него какой-то hook, но лезть в документацию и смотреть переменные этой функции желания нету, то мы опять таки выполняем несложную команду в консоли и в нашем модуле появляется заготовка этого hook‘а.

Установка Module Builder

Я пользуюсь drush и поэтому у меня процесс скачивания и распаковывания модуля в папку sites/all/modules довольно простой:

drush dl module_builder

Этого достаточно для того, чтобы пользоваться им из консоли. Т.е. включать модуль в списке модулей не обязательно. Но если включить, то появится в админке страница, где через веб-интерфейс можно будет задать несколько параметров. Например какой текст вставлять в начале и в конце генерируемых модулем файлов. И помоему простой модуль тоже можно было сгенерировать. Но там всё равно не так уж удобно и не весь функционал. Так что лучше пользоваться из консоли. получится быстрее и проще. Замечание: я пробовал версию 6.x-2.x-dev (2009-Nov-07). И эта версия программы не может получать список доступных хуков с сайта drupal. Описано об этом тут: http://drupal.org/node/618436 Решение простое: скачиваем файлик http://drupal.org/files/issues/hooks_processed.php_.txt Переименовываем его в hooks_processed.php и кладём в папку sites/default/hooks/ Команду drush mbdl не запускать, т.к. она попытается получить из инета свежий список возможных хуков, но в итоге ничего не получит и модуль не будет работать. Надеюсь, что это скоро исправят разработчики.

Примеры работы с module builder

drush mb my_module menu cron nodeapi taxonomy –build=all –write –go – создаст модуль my_module и сгенерирует файл my_module.module с объявленными функциями, имплементирующими хуки menu cron nodeapi taxonomy. Так же будет сгенерирован файл my_module.info А флаг –go автоматом включает модуль после его создания.

drush mb my_module –add install uninstall – добавляет в модуль my_module объявление хуков install и uninstall. причем если файла my_module.install раньше не было, то он автоматом будет создан.

А если написать drush help mb, то вы сможете прочитать более полную справку по функциям этого модуля.

Дополнительные функции

Вместе с этим модулем так же появились функции

  • drush dochooks Adds comment headers to hooks that need them in the given module.
  • drush docparams Adds params… WIP!

Но ни одна из них у меня не заработала.

tags:
posted in drupal by yas375

Follow comments via the RSS Feed | Оставить комментарий | Trackback URL

Leave Your Comment