【まとめ】Drupal モジュール開発入門講座 第1回 モジュールの基礎知識

こちらのサイトではDRUPAL10に関連する記事を掲載しています。

Drupalでは「モジュール」と呼ばれる、小さなソフトウェアを実装することで機能拡張を行います。本ウェビナーシリーズでは、Drupalのモジュール開発に関する基礎知識を解説します。Drupalのバックエンド周りについて体系的に学びたい方、自分でカスタムモジュールを作れるようになりたい方、アクイア認定デベロッパー試験を目指す方におすすめです。

Drupalを一通り操作したことがある方を対象としています。まだDrupalを触ったことが無い方は、初心者向けDrupalチュートリアル動画(日本語)を先に見ておくとより理解が深まります。

モジュールとは

Drupalを拡張するコードのこと。

PHPファイル、YAMLファイルほか、CSS、JS、TWINGファイルなど

オープンソースも活用可能

モジュールは管理画面で設定や権限の変更ができる

モジュール開発の前提知識

必要な知識

  • Drupalサイト構築の基礎知識
  • PHP知識
  • プログラミングの知識
  • Symfonyフレームワークの知識

DrupalはSymphonyコンポーネントを使っている

Symphonyはフレームワークであり、再利用可能なPHPコンポーネントライブラリのセットでもある

DrupalはSymphonyをフレームワーク(土台)として使っているのではなく、コンポーネントライブラリを利用している。

Symfonyコンポーネントとは

  • WEBアプリケーションフレームワークから切り離して実装されたPHPライブラリのこと
  • スタンドアロンライブラリなので任意のPHPアプリケーションから利用できる
  • Drupal8以降で利用している
  • Symfonyは一般的なWEBアプリ開発に必要なツールや機能を十分にもっている。

Drupalで利用しているコンポーネント

アノテーション

PHPのDocコメント内に記述されている@から始まるキーワードのこと

Drupalがコードの内容を理解するためもの

プラグイン

小さな機能を提供するもの

プラグインはモジュールによって定義される

サービスとサービスコンテナ

サービスコンテナとは依存性注入DIと呼ぼれるデザインパターンを実装したフレームワークのこと

サービスはサービスコンテナによって管理されるオブジェクト

Drupalコアには400個以上のサービスがある

主要なサービスは、Database,Plugin,Manager,Logger,Translation,CurrntUser

Drupalコーディング規約

コードの書き方

Drupalnoコーディング規約

PEARコーディング規約がベース

Drupalのコーディング規約はバージョンに関係なく最新のコード規約に従う必要がある

PHPStormやVSCodeで自動的に検出整形するツールがある

モジュールの種類

以下の種類がある

  • コアモジュール
  • コントリビュートモジュール
  • カスタムモジュール

コアモジュール

  • Node
  • Block
  • Views
  • Media
  • language
  • Workflows

など

コントリビュートモジュール

オープンソースで公開されたモジュール

カスタマイズ可能

カスタムモジュール

自作モジュール

モジュールの管理

インストール

  • 管理画面で行う
  • Drushで行う

モジュールの設定等のUI

  • HELP
  • PERMISSION
  • CONFIGURE

モジュールディレクトリ構成とファイル

モジュールによって場所が決まっている

個々モジュールのディレクトリ構成

ソースファイルはsrcフォルダに配置する

コードについて

PSR-4にしたがってファイルパスからクラスをオートローディングする。

Drupal8以降、PSR-4に準拠して実装されている

これにより名前空間を指定することなくファイル(クラス)名を自動的に解決してくれる

PSR-4

モジュール名に対応する名前空間

モジュールのマシン名

Drupal環境の用意

ローカル環境の用意

LANDOの紹介

DOCKERとLANDOのインストールをする

以下のコマンドでDRUPAL9環境を構築する

以下の要領で起動する

練習問題

このサイトに関するご意見・ご質問はこちらまで

この記事またはDrupalに関するご質問がございましたら、お気軽にお問い合わせください。

タイトルとURLをコピーしました