メインコンテンツに移動

Drupal : 縁の下で活躍するモジュール4つ

カスタムモジュール、テーマを作る人向けモジュール4選。自分が忘れないためのメモ用。

Hook Event Dispatcher

https://www.drupal.org/project/hook_event_dispatcher

Drupal8でhook書くのがイマイチと思っている人向け。hook書いてEvent作ってdispatchおいて・・・の部分を省略できて、EventsSubscriberだけ作ればOKになるモジュール。

Entity、Form、Field、Preprocess、Token、Views あたりのhookが対応されているので、カスタム範囲は網羅されている気がしている。

仕事プロジェクトで導入した結果、開発メンバーにうまく浸透しなかった経験もあって好みが分かれるモジュールでもある。hook、Eventくらい書けばいいといえば、その通りなので。

ただ使ってた当時、導入数1,000くらいだったんですが、2020年7月時点で6,000くらいになっていたのでまた導入検討してもいいんじゃない?くらいには思いました。

Preprocess

https://www.drupal.org/project/preprocess

preprocessのhookをプラグインとして実装できるモジュール。 プラグイン化によりコードの可読性(見つけやすさ)は下がるけど、他のサービスをDIできるようになるのがいい。

最初の Hook Event Dispatcher は、Eventとしてpreprocessの処理し、こちらはプラグインとしてアプローチしたケース。

両方入れるのは無しだけど、検討としてあげるのはいいと思う。

Components!

https://www.drupal.org/project/components

Twigを自由なディレクトリに置いて、namespaseベースで呼び出しできる仕組みを提供したモジュール。

仕事プロジェクトで使ったことはなくて、使ってみてもいいかなと思ったモジュール。

Ultimate Cron

https://www.drupal.org/project/ultimate_cron

最初の3つとは機能が全く違うけど、便利なので。仕事プロジェクトで導入経験あり。

カスタムバッチをたくさん作るプロジェクト向け。cron定義をDrupal内で管理、実行まで制御するモジュール。

Drupal7は Elysia Cron が同じ機能をもっていた。

定義が複雑で用意するのはやや面倒くさいけども、スケジュールはもちろん、二重実行禁止・実行順・管理画面から強制実行などの機能があって便利。

確実に定期実行するには最低でもサーバのcron設定1つは必要なので注意。