YO! Зацените скаффолдер для модулей Drupal 7

Главные вкладки

Аватар пользователя bumble bumble 19 февраля 2017 в 3:10
6

Drupal YEOMAN
Есть, значит, для Drupal 8 - консолько, а для Drupal 7 - пилите все руками, да?

Неее... ))

Надо бы трохи подправить баланс справедливости. Благо братья наши, нодJSники, делают кучу полезных инструментов (нам бы перенимать у них, ну да ладно... не об этом сейчас).

Есть, такая полезность как YEOMAN. Работает на ноде, позволяет скаффолдеры строить для разного.

Yeoman

Вот и решил я немного скрасить рутину, для начала - автоматизировав создание кастомных модулей.

Сразу про "А чо не драш" или "А чо не брать готовые модули":

Делал, в первую очередь, для себя. Надоело копировать это каждый раз. На ноде работает хорошо, быстро. Пишется и поддерживается - удобно. Короч, вот так.

Ок. Как юзать:

  • ясен пень - должна быть нода
  • (Установка: Linux, Mac, Windows)

  • так же должен быть установлен сам модуль - YO
  • npm install -g yo
  • и, вслед, ставим генератор Drupal-модулей
  • npm install -g generator-dmodule

(ключик "-g" означает что модуль будет установлен глобально - не для отдельного проекта, и будет доступен в любой директории.)

Вооот.... Теперь можно модульки делать - хоть обделаться! )) Создаем папку модуля в "нужном месте", переходим в нее..:

mkdir my_module && cd my_module

..и, генерируем модуль:

yo dmodule

По-ходу, отвечаем на все поставленные вопросы, типа: "Имя модуля", "Необходимые хуки", "Генерируемые файлы" и т.п.

На выходе получаем готовый скелетон модуля! Как2ПальцаАбАсфальт...

Пока способности - не безграничны, но рутину скрашивает на раз-два. Чего могет:

  • Генерация .info
  • Генерация .module
  • Генерация .install (при необходимости)
  • Генерация статических файлов - JS / CSS (при необходимости)
  • Имплементация некоторых хуков - hook_permission, hook_menu, hook_install/hook_uninstall, hook_schema (при необходимости)

Хуки, на выходе - с готовыми шаблонами.

Если "взлетит" (если будет интерес к проекту) - буду дальше развивать. Внедрю еще хуков, настроек им приделаю, все дела...

Вот Вам скрины:
Скрин generator_dmodule #1
Скрин generator_dmodule #2

Странички проекта:

Пока еще свежак, так-что смотрите-фидбечте. Тута, тама - де удобно.

Красивых вам модулей, YO!

Yeoman

ЗЫ - немного про YEOMAN можно почитать тут и здесь. Ну и канешн в гуглах, если уж понесло... ))

ВложениеРазмер
Иконка изображения drupal_yeoman.png17.08 КБ
Иконка изображения yo1.png64.77 КБ
Иконка изображения yo2.png95.86 КБ
Иконка изображения yeoman.png49.84 КБ
Иконка изображения yeoman_multiple.png39.68 КБ

Комментарии

Аватар пользователя gun_dose gun_dose 19 февраля 2017 в 13:58
1

Костя, если бы ты знал, что такое драш, ты бы знал, что любая нормальная тема умеет генерировать сабтемы через драш.

Аватар пользователя gun_dose gun_dose 28 февраля 2017 в 12:52
1

Наконец-то дошли руки затестить. Работает!) Раньше генерил заготовки модулей через пхпшторм, но эта штука реально удобнее и быстрее. Ещё раз Спасибо!

Аватар пользователя bumble bumble 28 февраля 2017 в 14:24
1

Пасиба, всем оттестившим!
Немного освобожусь и добавлю еще хуков, и может формо-генератор запилю.

Аватар пользователя OldWarrior OldWarrior 20 марта 2017 в 20:27
1

hook_field_views_data_views_data_alter();
hook_preprocess_views_view_summary_unformatted();

Шутка, конечно Smile

Тулза зачётная, хотя ещё и не пробовал. Респект, как говорится.

Аватар пользователя OldWarrior OldWarrior 20 марта 2017 в 20:34
2

PS. Есть предложение реализовать какой-нибудь темплейт набора хуков в редактируемом виде. Чтобы каждый мог расширять набор хуков по вкусу.

Или даже расширяемый набор темплейтов. Например,
- base_hooks.xml - базовый набор хуков (как бы из коробки)
- views_hooks.xml - что-то пользовательское
- my_custom_hooks.xml - ещё что-то-там пользовательское
- my_super_puper_hooks_set.xml - и ещё что-то-там пользовательское
...
и т.д.

Аватар пользователя bumble bumble 20 марта 2017 в 20:53

В планах - добавить реализации хуков HOOK_block_*, HOOK_theme (может с возможностью ввода необходимых темплейтов) и генератор форм (это может даже отдельным скаффолдером).

Делать возможность подключения своих конфигов - ИМХО, разрушает весь смысл скаффолдинга: вместо написания хуков в модуле их нужно будет писать в конфиге, который потом подключать к генератору, который их же и запишет потом в модуль...
Но! Вполне себе пища для размышления, может что и придумаю в этом направлении.

СПС @OldWarrior!

Аватар пользователя OldWarrior OldWarrior 20 марта 2017 в 22:10

Вот вам ещё пища для размышления. Говоря о внешних темплейтах я говорю о возможности расширять набор хуков произвольным образом, причём группируя наборы каким-то удобным для себя образом и именуя мнемонически. Поскольку, понятно, модули пишутся для самых разных нужд. НО САМОЕ ГЛАВНОЕ: ЭТО ОФИГЕННАЯ ВОЗМОЖНОСТЬ обмениваться сетами (наборами) между пользователями тулзы - т.е. потенциальный обмен расширениями. Каждый сможет подключить то, что ему удобно/нужно. Каждый сможет дополнить базовый набор своим шаблоном и дать его другим. Речь не о конфиге, а именно об автоматически подключаеых/загружаемых наборах/заготовках. Ядро тулзы при расширении набора тоже править не нужно, обновляются только наборы заготовок. Можно в XML, можно как-то иначе: TXT, CVS или вообще в JSON... etc.

Вам лично это может сократить время между обновлениями и сэкономить время на рутинную работу по забивке шаблонов хуков. И у вас никто не будет просить и ждать днями/неделями/месяцами дописать какой-то хук (которых овер 9000 вообще-то). Такая независимость на мой взгляд существенно поднимет и полезность и значимость и популярность тулзы в глазах пользователей.

PS. А впрочем, хозяин - барин. Просто чахлый набор хуков (если у вас не будет времени его постоянно расширять) со временем может похоронить хорошее начинание.

Аватар пользователя bumble bumble 20 марта 2017 в 23:19

Немного не тот концепт ))

Направление Вашей мысли я понял. И согласен, было бы круто иметь под рукой что-то вроде артисана из лары. Но это определенно нужно писать, а ввиду постепенного отмирания 7ки - вроде как поздновато уже... Да и применяемый подход ПОП, в купе с практически отсутствием структуры в построении модулей не особо располагают к такой автоматизации.

Да, и это больше похоже на тот шаг, который совершают многие - задумать простую вещицу, решающую элементарную задачку, и в порыве фанатизма замахнуться на гипер-мега-турбо-мульти-тулл, решающий все проблемы насущности. В итоге, это редко у кого получается.

Задача этого генератора - не быть полноценным модуль-билдером, а просто убить грусть уставшего проггера, который в тримилионный раз пишет инфо-файл для очередного модулька.

Аватар пользователя OldWarrior OldWarrior 21 марта 2017 в 2:54

bumble wrote:
... ввиду постепенного отмирания 7ки - вроде как поздновато уже...

D7 как раз как бы и отмирает с каждой такой фразой Wink
Не претендую, канеша, на объективность, но, думаю, лет 5-6 седьмая ветка ещё точно протянет. За это время всё отшлифуете и перейдёте на самую свежую ветку (что там уже будет: какой-нить D15 ?). К тому же вроде как ничто не мешает по ходу придумать какую-то вообще абстрактную модель, где можно будет выбирать, под какую именно версию генерировать "module kit".

bumble wrote:
...Задача этого генератора - не быть полноценным модуль-билдером, а просто убить грусть уставшего проггера, который в тримилионный раз пишет инфо-файл для очередного модулька.

Да, тогда всего уже достаточно.

Аватар пользователя bumble bumble 27 марта 2017 в 19:45

bumble wrote:

Сразу про "А чо не драш" или "А чо не брать готовые  модули":

Делал, в первую очередь, для себя. Надоело копировать это каждый раз. На ноде работает хорошо, быстро. Пишется и поддерживается - удобно. Короч, вот так