カスタムモジュール、テーマを作る人向けモジュール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つは必要なので注意。