今回作成するモジュールは画面に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!が表示されます。