Drupal Consoleを利用してカスタムエンティティを作成する
ここ数ヶ月JavaとRuby on Railsのソースを読んでは書いてを繰り返し続けて気が滅入り始めているのでDrupal(PHP)のネタをここいらで一つ。
Drupal 9の環境でDrupal Consoleを用いて独自のエンティティ(Entity)を作成していこうと思います。
Drupal自体は個人的にはお気に入りのCMS・フレームワークなのですが、Drupalの日本語記事はやっぱり少ないなと思うので、布教を兼ねてどんどん記事を書いていきたい所存です。
環境
- Drupal 9.0.6 Minimal(最小)プロファイル
-
Field UI
,Views
及びViews UI
モジュールを予め有効にしておいてください。
-
- PHP 7.4.11
- MariaDB 10.4.13
- Composer 1.10.13
- Drush 10.3.5
- Drupal Console 1.9.5
な環境をWindows 10上でDocker Composeを用いて開発をしています。
Drupal 9がインストール済み(管理画面が見れる状態)で drush
, drupal
及び composer
コマンドが使える状態で以下の手順を進めてください。
カスタムモジュールの作成
今回は例として、本の情報を管理するために、 CustomBook モジュール と CustomBook エンティティ を作成していきます。
対話式で適宜入力をしていきます、デフォルトのままで良い場合はそのまま未入力 Enter で飛ばしていきます。
$ drupal generate:module
// Welcome to the Drupal module generator
Enter the new module name: # 新規作成するモジュール名を指定
> CustomBook
Enter the module machine name [custombook]: # CMS管理用の名称を指定
>
Enter the module Path [modules/custom]: # 新規作成するモジュールのパスを指定
>
Enter module description [My Awesome Module]: # モジュールの説明文を指定
> Management book entity
Enter package name [Custom]: # モジュールのグループ(カテゴリ)を指定
>
Enter Drupal Core version [8.x]: # Drupalの動作Versionを指定する
>
Do you want to generate a .module file? (yes/no) [yes]: # {module_name}.module ファイルの生成の可否を指定
>
Define module as feature (yes/no) [no]: # よくわからないです……
>
Do you want to add a composer.json file to your module? (yes/no) [yes]: # composer.json ファイルの生成の可否を指定
> no
Would you like to add module dependencies? (yes/no) [no]: # 他のモジュールの依存を指定する
>
Do you want to generate a unit test class? (yes/no) [yes]: # PHP Unit テスト用のファイルの生成の可否を指定
> no
Do you want to generate a themeable template? (yes/no) [yes]: # モジュール用のテンプレートファイルの生成の可否を指定
> no
Do you want proceed with the operation? (yes/no) [yes]: # noを指定するとモジュール生成がキャンセルされる
>
Generated or updated files
Generation path: /opt/drupal/web
1 - /modules/custom/custombook/custombook.info.yml
2 - /modules/custom/custombook/custombook.module
Generated lines: 29
Category