Drupal 8カスタムモジュール–これらのベストプラクティスを使用して効率的なDrupal8モジュールを作成する

公開: 2020-03-17

Drupal 8カスタムモジュールは、カスタマイズの必要性に応じて、非常に単純なものから非常に複雑なものまでさまざまです。 Drupalの真の力は、Drupal 8のカスタムモジュールで解き放たれます。カスタムモジュールの複雑さに関係なく、いくつかのベストプラクティスに従うと、より効率的なカスタムモジュールを作成するのに役立ちます。 それでは、始めましょう!

最近、私はDrupalでモジュールを探していましたが、何かが頭に浮かびました。 Drupalの世界では、解決策を検討または検討しているときに、最初に耳にするのは「そのためのモジュールがあります!」です。 Drupalには70近くのコアモジュールがありますが、プラットフォームの機能を拡張するのは、Drupalコミュニティによって構築された追加の寄稿モジュールです。 また、Drupal 8では、CMSに対して完全に異なるアーキテクチャと最新のアプローチがあり、全体的な効率とソフトウェア品質を向上させるためにオブジェクト指向にシフトしています。 Drupalの機能をさらに拡張するためのDrupal8カスタムモジュールの作成は、Drupal7の場合と同じではありません。

drupal8カスタムモジュール

Drupal 8のカスタムモジュールとは何ですか? なぜ作成するのですか?

Drupal 8カスタムモジュールは、基本的に、カスタマイズされた機能で構成されるモジュールです。 Drupalカスタムモジュールは、小さなカスタマイズが必要な寄稿モジュール、またはプロジェクトにカスタムフィットする存在しない機能の新しいセットを備えた完全に新しいDrupal8モジュールから始めることができます。 または、Drupal7モジュールがDrupal8で使用できないため、Drupal7からDrupal8への移行でカスタムモジュールが必要になる場合があります。Drupal8カスタムモジュールは、基本的にDrupalのコア機能を拡張するために構築されています。コアモジュールの組み込みセットを使用します。

以前のバージョンのDrupalでの経験に関係なく、Drupal8でのモジュール開発には独自の課題があります。 公平を期すために、Drupal7とDrupal8にはいくつかの違いがあります。主な違いは、Drupal8を実行するには最新バージョンのPHP7が必要であり、オブジェクト指向プログラミングに依存するPHPフレームワークであるSymphonyを使用することです。 それにもかかわらず、Drupal 8の新しいアプローチは未来的なアプローチであり、OOPとMVCの概念に精通している幅広い開発者に門戸を開いています。

また、モジュールの構築方法に変更があり、コミュニティの標準に対応するための特定のベストプラクティスがあります。 これについてもっと話しましょう。

Drupal8ファイル構造の変更

覚えておくべき重要な点の1つは、Drupal 8モジュールの開発では、ファイル構造がDrupal 7のものとはかなり異なることです。Drupal7のカスタムモジュールは、このディレクトリがコア用に予約されていたDrupal 7とは異なり、 / modulesディレクトリに保存されます。モジュール。 コアのDrupal8モジュールが/ coreディレクトリに移動します。
次に、カスタムモジュールが存在することをDrupal 8に通知するには、メタデータを提供する.info.ymlファイルを作成する必要があります。 このプロセスは、Drupal7で使用されるプロセスと似ています。

name-このキーは、カスタムモジュールの名前を提供するためのものです。
type-このキーは、拡張機能のタイプ(モジュール/テーマ/プロファイル)を定義します。
description-このキーは、カスタムモジュールに関する詳細な説明を提供します(モジュールリストページに表示されます)。
package-このキーは、モジュールを含めるパッケージを指定します。
version-モジュールのバージョンを指定します。

ファイルが「 blogexmple_module.info.yml 」のようになっている場合、構文は次のようになります-
名前-blogexmpleモジュール
タイプ–モジュール
説明-簡単なデモモジュール
パッケージ–カスタム
バージョン-1.0
コア-8.x

コード前の構成の使用

変更を加えるたびにコードを書き直さなければならないのは、かなりの作業です。 クラスをテーマにハードコーディングする代わりに、構成に値を設定し、コードで適用します。 これにより、コーディングが簡単かつ迅速になり、高品質のモジュールが実現します。 再利用可能なコードが高品質のソフトウェアを作成する際の標準であるため、コードの構成により、高度な機能と「変更が容易な」機能が保証されます。

Drupalが提供するものを使用する

モジュールを構築したら、Drupalには、モジュールのデータと設定を保存および表示するためのさまざまな組み込みの管理機能が付属していることを知っておく必要があります。 モジュール設定ページは、フックメニューで定義できます。 このフックにより、モジュールはURL要求の処理方法を定義するためにパスを登録できます。 drupal_get_formページのコールバックの使用法では、コールバック関数で行う必要があるのは、保存する設定を定義して返すことだけです。

料理人が多すぎるとスープが台無しになります

Drupalの開発者は、大規模なDrupalサイトで長い間作業してきたので、何百ものモジュールが魔法を使って効果的な大規模プロジェクトを作成できることを学びました。 ただし、エンタープライズDrupal Webサイトで作業する場合、単一の貧弱なモジュールを回避することは、30個の十分に開発されたDrupalモジュールを回避するよりも大きな効果があることに注意することが重要です(より少ないモジュールを使用しようとします)。 その場合、開発者は、既存のモジュールを再利用するよりも、独自のモジュールをプログラミングすることを好む傾向があります。 プロジェクト用に作成するカスタムモジュールの数が多いほど、後でDrupalサイトを維持および変更するために必要な作業が多くなります。 代わりに、Githubでモジュールを公開することを検討してください。 これにより、カスタムモジュールの大規模なコレクションの使用を回避でき、代わりに、必要な構成を持つ再利用可能なコードを作成することをお勧めします。

環境とコーディング基準

Drupalプロジェクトが面倒なことなく実行されることを保証するため、開発環境は重要な影響力です。 Drupal開発会社は、効率的なワークフローのために、チーム全体がまったく同じ開発環境で作業することを保証します。

このような環境で作業しているときに処理する最大の問題の1つは、コードがクリーンで保守可能であることを確認することです。 Drupal開発者は、コードが読み取り可能であり、作業しているすべての人にとって意味があることを確認する必要があります。 そして、これはチームメンバーや組織の誰かだけでなく、より大きなDrupalコミュニティ自体にも当てはまります。 コミュニティの関与はDrupal開発の重要な部分であり、分散チームが効率的に連携するための重要な側面であるため、コーディング標準に従うことは、プロジェクトの目標と目的を達成するのに役立ちます。