【まとめ】Drupal モジュール開発入門講座 第2回 シンプルなカスタムモジュールを作ってみよう

こちらのサイトではDRUPAL10に関連する記事を掲載しています。

Drupalでは「モジュール」と呼ばれる、小さなソフトウェアを実装することで機能拡張を行います。本ウェビナーシリーズでは、Drupalのモジュール開発に関する基礎知識を解説します。Drupalのバックエンド周りについて体系的に学びたい方、自分でカスタムモジュールを作れるようになりたい方、アクイア認定デベロッパー試験を目指す方におすすめです。

Drupalを一通り操作したことがある方を対象としています。まだDrupalを触ったことが無い方は、初心者向けDrupalチュートリアル動画(日本語)を先に見ておくとより理解が深まります。

カスタムモジュールを作ろう

カスタムモジュールを作る方法は以下の方法がある

  • フック
  • プラグイン
  • エンティティ
  • サービス
  • ルーティング
  • イベント

今回はフックでモジュールを作成する

今回の作成手順

*.info.ymlファイル作成

モジュールのメタ情報を記載する

モジュール作成において唯一の必須ファイルになる

配置場所

設定内容

description以外は必須項目

下記以外にもオプション設定がある

有効化

YMLファイルだけで有効化のリストに表示されるようになる

フックを実装

フックとは

Drupalの動作を変更する関数

Drupal7までは主にフックで実装されていた

既存のコードを変更することなく、Drupalコアやモジュールの動作を変更可能

フックにはhook_で始まる名前がある

フックには一連のパラメータと戻り値が用意されている

基本的にカスタムモジュールの*.moduleファイルでフックを実装する

カスタムモジュールでオリジナルのフックを実装することもできる

保存時のボタンの表示を変更する

Drupalのドキュメントに定義されている(300個くらいあ)

手順

ルーティングとコントローラを追加

ページが呼ばれる仕組み

リクエストを受け付ける(INDEX.PHP)

DRUPALカーネルを実行(SYMFONYのHTTPKERNELをベースにDRUPALKERNELを実装)

対象のコントローラを特定、実行、テンプレートレンダリングをする(ROUTING)

結果をレスポンスできる形式にして返す

ルーティングシステム

既存Drupalサイトのルート一覧

Develモジュールで全ルート一覧を取得できる

YMLファイルで定義

コントローラの作成

maruchaパスをアクセスする

ルーティング一覧に表示される

フォームを作成

このようなフォームをカスタムモジュールでつくる
Drupal FormAPIを使う

DrupalのFormAPIとは

FormAPIとはHTMLフォームを定義するための抽象化レイヤー

フォームの定義、表示、検証、送信というライフサイクルを制御する

フォームが要求されるとレンダリング可能は配列変数として定義される

レンダリング過程でHTMLに変換、エンドユーザに表示される

フォルムの種類

FormBase
ConfigFormBase他

フォームクラスの作成

getFormID()

buildForm()

submitForm()

以上3つのメソッドが必要

YMLファイルにルーティング定義を追加

ブロックを作成

ブロックAPIとは

ブロッククラスを作成する

練習問題

このサイトに関するご意見・ご質問はこちらまで

この記事またはDrupalに関するご質問がございましたら、お気軽にお問い合わせください。

タイトルとURLをコピーしました