第VI部 Drupal 8の基本モジュール作成の実践ガイド
.infoからテストまで、基本のみ
このDrupal 8の基本モジュール作成の実践ガイドを最初からフォローしてきたなら、そろそろ品質管理の段階です。飛び込んで一緒にプレイしたいだけなら、Drupalから直接Lorum ipsumモジュールを入手できます。
Drupal自体を通じて実行できる独自のテストをいくつか書いて、モジュールが正しく動作することを確認しましょう。
Views表示スタイルプラグインの作成は難しいように思えるかもしれませんが、思ったより簡単です。ソースコード付きのステップバイステップガイドを紹介します。
完成したコードはこちらからダウンロードできます:TARDIS(まだdev版ですが)。Drupal 8モジュールの入門が必要な場合は、Drupal 8の基本モジュール作成の実践ガイドがあります。
.info.yml
/modules/customに、モジュール用のtardisというフォルダーを作成することから始めます。その中に、次のコードを含むtardis.info.ymlという名前のファイルを配置します:
イベントシステムの概要
イベントシステムは、拡張機能がシステムの動作を変更できるようにする方法として、多くの複雑なアプリケーションで使用されています。イベントシステムはさまざまな方法で実装できますが、一般的に、システムを構成する概念とコンポーネントは同じです。
フィールドフォーマッターモジュールは、最終ユーザーが表示できるようにフィールドデータをフォーマットします。フィールドフォーマッターはプラグインとして定義されるため、新しいフィールドフォーマッターの作成を始める前にプラグインAPIを確認することをお勧めします。
フィールドフォーマッタークラス
ファイル: /modules/random/src/Plugin/Field/FieldFormatter/RandomDefaultFormatter.php
フィールドウィジェットは、フォーム内でフィールドをレンダリングするために使用されます。フィールドウィジェットはプラグインとして定義されるため、新しいフィールドタイプの作成を始める前にプラグインAPIを確認することをお勧めします。
Drupal 8でフィールドウィジェットを作成するには、FieldWidgetアノテーションを持つクラスが必要です。
配置場所フィールドウィジェットクラスは /[MODULE_NAME]/src/Plugin/Field/FieldWidgetにある必要があります。例:/foo/src/Plugin/Field/FieldWidget/BarWidget.php。
名前空間このクラスの名前空間は [MODULE_NAME]\Plugin\Field\FieldWidgetである必要があります。例:\Drupal\foo\Plugin\Field\FieldWidget。
フィールドタイプは、フィールドのプロパティと動作を定義します。フィールドタイプはプラグインとして定義されるため、新しいフィールドタイプの作成を始める前にプラグインAPIを確認することをお勧めします。
Drupal 8でフィールドタイプを作成するには、FieldTypeアノテーションを持つクラスが必要です。
配置場所フィールドタイプクラスはMODULE_NAME/src/Plugin/Field/FieldTypeに配置する必要があります
/modules/foo/src/Plugin/Field/FieldType/BazItem.php
名前空間このクラスの名前空間はDrupal\MODULE_NAME\Plugin\Field\FieldTypeである必要があります
Drupal 8では、すべてのフィールドタイプ、ウィジェット、フォーマッターはプラグインです。
期待されるディレクトリ構造に配置され、正しいアノテーションを使用していれば、自動的に検出されます。
3つのコンポーネントすべてを実装するモジュールのディレクトリ構造は次のようになります:
foo_bar_fields
- foo_bar_fields.info.yml
- src/
- Plugin/
- Field/
- FieldType/
- FooItem.php
- FieldFormatter/
- FooBarFormatter.php
- FieldWidget/
- FooBarWidget.php
- FieldType/
- Field/
- Plugin/
このチュートリアルでは、ランダムな文字列を生成して表示する独自のフィールドタイプ、フォーマッター、フィールドウィジェットを作成します。
このチュートリアルは元々Web Washで公開されていました。しかし、Berdirがチュートリアルをここに掲載できるか尋ねてきたので、ここにあります。
Drupal 7のモジュールでは、コードの例/スニペットをフィールドに保存できます。「スニペットフィールド」というカスタムフィールドが付属しており、3つのフォーム要素(説明、ソースコード、構文ハイライトモード(プログラミング言語))が表示されます。
しかし、今こそモジュールをDrupal 8に更新する時です。
このチュートリアルでは、Drupal 8で「基本的な」カスタムフィールドをどのように作成したかを示します。PSR-4、アノテーション、プラグインの詳細には触れません。そうするとこのチュートリアルが巨大になってしまうからです。