logo

パレット - カラフルに🎨

Palette — ビジュアルページビルダー、デザインの専門知識は不要です。

ライブデモ パレットをダウンロード

Scroll
24/04/2020, by maria

パートII:Drupal 8の基本モジュール作成の実践ガイド
.infoからテストまで、基礎のみ

基本構造

loremipsum.info.yml

name: Lorem ipsum
type: module
description: 'Lorem ipsum generator for Drupal'
package: Development
core: 8.x
configure: loremipsum.form

インフォファイルは現在YML形式でフォーマットされており、type宣言でモジュールとテーマの区別がわかります。configure宣言はルートを指しています(詳細は後ほど説明します)が、それ以外には何もありません。実際、これがモジュールに必要な唯一のファイルです。これを(root/modulesフォルダに)保存した後、サイトを壊すことなく/admin/modulesでモジュールを有効化できます。ただし、これから説明するように、それだけでは十分ではありません。

24/04/2020, by maria

はじめに

Drupalの最新バージョンであるDrupal 8については、多くのことが語られ、議論されてきましたが、一つ確かなことがあります:モジュールの構築方法は大きく変わりました。新しい状況に特化したチュートリアルは数多くあり、それぞれの著者は、コードが進化するにつれてさらに大きな変化に注目するよう開発者にアドバイスしています。

ここ数日、私はいくつかこれらのチュートリアルと、Examplesモジュール を調べ、近い将来にも有効であり続けるであろう、かなり興味深い例を見つけました!

24/04/2020, by maria

主要テーマ: デフォルト設定

概要

Drupal 7では、コンテンツタイプ、フィールド設定、ビューなどのモジュールのデフォルト設定には、インストールと更新のための特別なPHPコードが必要でした。Drupal 8では、これらは設定システムとともにYAMLテキストファイルに保存されます。

例えば、設定管理システムはコンテンツタイプの作成と管理を行います。適切な名前と構造を持つ設定ファイルを作成することで、モジュールと一緒にコンテンツタイプを配布できます。

node.type.example_mytype.ymlという名前のファイルを作成し、モジュールディレクトリのconfig/installサブディレクトリに配置します。例えば、モジュールが/modules/exampleにある場合、このファイルは/modules/example/config/install/node.type.example_mytype.ymlに配置できます。

モジュール名の前にコンテンツタイプのプレフィックスを付け、その後にアンダースコアを続けるという命名規則に従ってください。これにより、他の設定ファイルとの競合を避けられます。

24/04/2020, by maria

モジュールに1つのyaml設定ファイルを追加すると、Drupalは自動的にそのyamlファイルの内容を読み込み、デフォルト設定を提供するためにそれにアクセスできるようになります。モジュールのルートフォルダーから、新しいフォルダーを作成して「config」という名前を付けます。新しいフォルダー内に、別のフォルダーを作成して「install」という名前を付けます。最後に、config/install内に新しいファイルを作成してhello_world.settings.ymlという名前を付けます。

24/04/2020, by maria

このガイドはHello Worldモジュールから続き、カスタムブロックを(それ以上も)段階的に追加する方法を示しています。

冒険が好きなら、examplesモジュールに進むことができます。Examplesモジュール には、このガイドで使用されているコードのさらに多くの例 が含まれています。初めての方は、このガイドを読み続けて、もっと学ぶ準備ができたらexamplesモジュールを確認してください。

Drupalコミュニティが提供する本当にクールなコードと組み込みドキュメントをすべて調べるには、http://cgit.drupalcode.org/examples/tree/page_example?h=8.x-1.x.を試してみてください。

関連するAPIドキュメントも必ず確認してください:

24/04/2020, by maria

モジュールの設定ページのプレースホルダーを作成したので、メニューのリンクを追加しましょう。以下の手順では、「管理者>設定」ページ(http://example.com/admin/config)の「開発」セクションにhello_worldモジュールへのメニューリンクを作成する方法を示します。

モジュールのルートフォルダーにhello_world.links.menu.ymlという名前の新しいファイルを作成し、次の内容を追加します:

24/04/2020, by maria

HelloControllerクラスのcontent()関数は、ルーティングシステムがページを呼び出すときにマークアップテキストを返します。

モジュールフォルダーには、標準のPSR-4フォルダー構造/src/Controllerが必要で、そのフォルダー内にコントローラーファイルHelloController.phpが必要です。
したがって、コントローラーファイルは/src/Controller/HelloController.phpのようになります。

HelloController.phpファイルには次のコードがあります:

24/04/2020, by maria

次の セクションでは、簡単なモジュールの作成を分解していきます。どの新しいシステムでも最初に書くプログラムが「Hello World!」を画面に出力するという長年の伝統があります。

Drupalは最も大胆で進歩的なオープンソースプロジェクトの1つですが、科学と技術の長年の伝統に深く根ざしています。

このステップバイステップガイドのコードを使い始める前に、ここで説明されている手順に従ってモジュールのスケルトンを準備してください:モジュールスケルトンの準備

Drupal 8 Interconnectionsは、モジュールコンポーネント間の相互関係を説明するデモページです。

24/04/2020, by maria

カスタムモジュールの開発では、開発者がモジュールにcomposer.jsonファイルを追加する必要があるシナリオがいくつかあります。これらのシナリオの一部は、カスタムモジュールがdrupal.orgのプロジェクトとしてコミュニティに提供されるかどうかによって異なります。

モジュール開発者がpackagist.orgでホストされているPHPライブラリを使用したい場合は、プロジェクトにcomposer.jsonファイルを追加する必要があります。

モジュールがdrupal.orgの提供モジュールであり、他のモジュールへの依存関係があり、開発の一部としてDrupalCIを使用してこれらの依存関係の変更をテストしたい場合は、これらのDrupalモジュールの依存関係を表すcomposer.jsonが必要です(DrupalCIは、composer.json内のパッチの依存関係の変更のみを検出でき、.infoファイルや.info.ymlファイル内の変更は検出できません。)