3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Drupal8】カスタムモジュールの作成手順

Posted at

【概要】

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になります。

作成したファイル内に以下のように記述します。

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を作成します。

作成したファイルに以下のように記述します。

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.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!」と無事表示されるか確認をしましょう。

無事表示されれば、モジュール作成完了になります。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?