これから数回に分けてDrupalカスタムモジュール作成方法についての社員ブログを書いていこうかと思います。
先ずは、最初の一歩として大雑把にでもアーキテクチャの勉強から入っていこうかと思います。
それでは一般的なフォルダ構成です。
1.フォルダ・ファイル構成例
一般的にはこのような形が多いかと思われます。
横から割り込めるフック処理を入れるmarucha.module以外については必須です。
必須の作業についてを後続で手順解説します。
/Users/自由自在/my-drupal10-site/web/modules/custom/marucha/
├── marucha.info.yml
├── marucha.routing.yml
├── marucha.module
└── src/
└── Controller/
└── MaruchaController.php
2.モジュール定義ファイルの作成
先ずはそのモジュールの基本的な情報を認識させるためのファイルとしてmarucha.info.ymlがあります。
内容としてはバージョン10.xに対応のモジュールになりますよという宣言になります。
name: 'Marucha Custom Module'
type: module
description: 'Custom module for Marucha.'
core_version_requirement: ^10
package: Custom
3.コントローラーの作成
オブジェクト指向開発なため、MVCモデルが必須になってきますが、カスタムモジュールの場合、MとVがコア依存度高いため、Cのみ追加するといった特殊なやり方になってきます。
MaruchaController.phpという名前で、コア依存があるため、名前空間や変数などの重複が許されない作りになっています。
<?php
namespace Drupal\marucha\Controller;
use Drupal\Core\Controller\ControllerBase;
class MaruchaController extends ControllerBase {
public function content() {
return [
'#type' => 'markup',
'#markup' => $this->t('Hello Marucha!'),
];
}
}
4.ルーティングの定義
marucha.routing.ymlというファイルになります。これはアクセスされたURLとコントローラーを紐付けるファイルです。
独自URLの組み立てなどもここで出来ます。
marucha.content:
path: '/marucha'
defaults:
_controller: '\Drupal\marucha\Controller\MaruchaController::content'
_title: 'Marucha Page'
requirements:
_permission: 'access content'
5.モジュールの有効化とキャッシュクリア
Drupalは構成変更をキャッシュするため、Drushと呼ばれるDrupal専用のコマンドラインツールを用いて下記コマンドを実行します。
そうするとモジュールが有効化されます。
試しにMacターミナルなどからプロジェクトのルートディレクトリで実行してください。
drush en marucha -y
drush cr
6.感想
コア依存が大きい分、フォルダ構成がゴチャゴチャしなくて済むのが大きめのメリットかなと思いました。
また、どの程度の規模感の修正かにもよりますが、弄れる箇所が少ない分、運用面でもこの方式はメリットがあるのかなと思いました。
- 閲覧数 12
コメントを追加