【概要】
Drupal8で簡単なカスタムモジュールを一つ作成します。
【目標】
画面に、「Hello!」と表示させること。
完成したときのモジュール構造は以下の通りです。
Drupal/ ← プロジェクト名
├ modules/
└ hello/
├ hello.info.yml
├ hello.routing.yml
├ hello.module
└ src/
├ HelloController.php
1. カスタムモジュール用のディレクトリを作成
モジュールのファイル一式を格納するディレクトリを作成します。
Drupalプロジェクトのmodules
ディレクトリ配下に、
カスタムモジュール用のディレクトリを新規作成します。
今回はhello
を作成します。
Drupal/
├ modules/
└ hello/
2. モジュールのメタ情報ファイルを作成
1で作成したディレクトリ内に、
モジュールのメタ情報を記述する「モジュール名.info.yml」ファイルを作成します。
今回のファイル名はhello.info.yml
になります。
作成したファイル内に以下のように記述します。
name: my first custom module.
type: module
description: 'This is my first module.'
core: 8.x
このようにメタ情報ファイルを作成することで、
Drupalがこのモジュールの認識をしてくれるそうです。
3.モジュールの本体ファイルを作成
モジュールのコアとなる「モジュール名.module」ファイルを作成します。
今回のファイル名はhello. module
になります。
今回は「Hello!」を表示するページを作成する上ではこのファイルは使用しないので、
中身は空のままで進めます。
4.コントローラーファイルを作成
今回は、src
ディレクトリを新規作成し、
その配下にHelloController.php
を作成します。
作成したファイルに以下のように記述します。
<?php
namespace Drupal\hello;
use Drupal\Core\Controller\ControllerBase;
/**
* Hello!を表示するコントローラー
*/
class HelloController extends ControllerBase {
public function content() {
return array(
'#markup' => '' . t('Hello!') . '',
);
}
}
5. モジュールのルーティング情報ファイルを作成
ルーティング情報ファイル用の「モジュール名.routing.yml」ファイルを作成します。
ルーティング情報ファイルは、特定のパスにアクセスした時に、
特定のコントローラーを利用させるように設定するファイルです。
今回は、hello.routing.yml
になります。
作成したファイルに以下のように記述します。
hello:
path: '/hello'
defaults:
_title: 'Hello Title'
_controller: '\Drupal\hello\HelloController::content'
requirements:
_permission: 'access content'
ファイル内の説明
・ hello: そのルーティング設定の名前
・ path: 対象とする URL パスの指定
この設定により、そのDrupalサイトの/hello
というパスにアクセスをすると、
4で作成したHelloController.php
内のHelloController::content
メソッドが対応するようになります。
6.モジュールをインストール
Drupalサイトにアクセスします。
管理画面からタブ「拡張機能」を選択すると、モジュールの一覧が表示されるので、
その画面から今回作成したカスタムモジュールをインストールします。
今回は、my first custom module.
というモジュールを作成したので、
モジュールの横にあるチェックボックスにチェックを入れて、画面の一番下の「設定を保存」をクリックします。
以上で、有効化が完了になります。
最後に、ブラウザからパス/hello
にアクセスして今回作成したページに「Hello!」と無事表示されるか確認をしましょう。
無事表示されれば、モジュール作成完了になります。