Drupalのモジュール作成方法 Part.1

今回作成するモジュールは画面にHello there!を表示させるベーシックな機能のモジュールです。

最初にモジュール名を決めます。例えば作成するモジュール名をhelloとした場合、フォルダをhelloとし、helloフォルダ配下に下記ファイルを作成します。helloフォルダはmodulesフォルダ配下に設置します。

drupal/modules/hello/

  |-hello.info.yml
  |-hello.routing.yml
  |-src
     |-Controller
         |-HelloController.php

①hello.info.ymlについて

モジュール名、タイプ、モジュールの概要、drupal coreのバージョンなどの情報を設定します。このファイルがあればモジュールとして認識されます。

name: Hello module.
type: module
description: 'This is your first module.'
core: 8.x

②hello.routing.yml

helloモジュールのパスを定義します。パスが/helloなのでサイトURL/helloでHelloControllerのhelloメソッドが動作します。例えばdrupalstudyサイトの場合は、http://www.ffront.jp/drupalstudy/helloとなります。 controllerを動作させる場合はrouting.ymlファイルは必ず必要となります。

hello.hello:
  path: '/hello'
  defaults:
    _controller: '\Drupal\hello\Controller\HelloController::hello'
  requirements:
    _access: 'TRUE'

③HelloController.php

モジュールのメインとなるController部分です。

名前空間namespaceの設定 namespace Drupal\hello\Controller;と

継承するControllerBaseの情報を設定します。use Drupal\Core\Controller\ControllerBase;

クラスHelloControllerはControllerBaseを継承するので、

class HelloController extends ControllerBase {}となります。

クラスHelloControllerのhelloメソッドで今回表示するHello there!のHTMLをreturnで返しています。


<!--?php
/**
* @file
* Contains \Drupal\hello\Controller\HelloController.
*/
namespace Drupal\hello\Controller;
use Drupal\Core\Controller\ControllerBase;

class HelloController extends ControllerBase {
  public function hello(){
    return array(
    '#type' => 'markup',
    '#markup' => $this->t('Hello there!'),
    );
  }
}

http://www.ffront.jp/drupalstudy/helloでHello there!が表示されます。

hello