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

Вс, 19/02/2017 - 00:10

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 можно почитать тут и здесь. Ну и канешн в гуглах, если уж понесло... ))

8 Спасибо

Комментарии

Аватар пользователя Studio VIZA
1 month 2 дня назад Studio VIZA #

С модулями теперь палегше.
Требуем генератор тем теперь.

0 Спасибо
Аватар пользователя bumble
1 month 1 день назад bumble #

Ща по модулькам сделаем годно, потом и на темы посмотрим.

1 Спасибо
Аватар пользователя Mihail.space
1 month 1 день назад Mihail.space #

Норм будет

1 Спасибо
Аватар пользователя gun_dose
1 month 1 день назад gun_dose #

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

1 Спасибо
Аватар пользователя Mihail.space
1 month 2 дня назад Mihail.space #

Шикарная штука)

0 Спасибо
Аватар пользователя gun_dose
1 month 1 день назад gun_dose #

Йоу бичь мазафака! Да это же просто восхитительно!

0 Спасибо
Аватар пользователя Totaku
1 month 1 день назад Totaku #

Шикарно! Сижу пробую. Спасибо!

1 Спасибо
Аватар пользователя gun_dose
3 недели 1 день назад gun_dose #

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

0 Спасибо
Аватар пользователя bumble
3 недели 1 день назад bumble #

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

1 Спасибо
Аватар пользователя Studio VIZA
2 дня 13 часов назад Studio VIZA #
bumble написал:
Немного освобожусь

Требуем новых хуков, пора.

0 Спасибо
Аватар пользователя bumble
2 дня 12 часов назад bumble #

Не вопрос. Каких вам не хватает? )))

0 Спасибо
Аватар пользователя OldWarrior
2 дня 12 часов назад OldWarrior #

hook_field_views_data_views_data_alter();
hook_preprocess_views_view_summary_unformatted();

Шутка, конечно :-)

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

1 Спасибо
Аватар пользователя OldWarrior
2 дня 12 часов назад OldWarrior #

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

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

2 Спасибо
Аватар пользователя bumble
2 дня 12 часов назад bumble #

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

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

СПС @OldWarrior!

0 Спасибо
Аватар пользователя OldWarrior
2 дня 11 часов назад OldWarrior #

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

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

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

0 Спасибо
Аватар пользователя bumble
2 дня 10 часов назад bumble #

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

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

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

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

0 Спасибо
Аватар пользователя OldWarrior
2 дня 6 часов назад OldWarrior #
bumble написал:
... ввиду постепенного отмирания 7ки - вроде как поздновато уже...

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

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

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

0 Спасибо
Аватар пользователя Studio VIZA
2 дня 12 часов назад Studio VIZA #
OldWarrior написал:
Респект

Эта мне респект за поднятие, Антон думал мы забудем ))

1 Спасибо
Аватар пользователя OldWarrior
2 дня 12 часов назад OldWarrior #

Ну и тебе, борода, респект, так и быть.

Ай-ай, забыли главного режиссера )

1 Спасибо
Аватар пользователя Studio VIZA
2 дня 9 часов назад Studio VIZA #
bumble написал:
а просто убить грусть уставшего проггера

https://www.img.studioviza.com/Shot8no77.png

0 Спасибо