入門編-Drupal8の背景および前提事項

サードパーティーの開発者がCMSの中で最新のAPIを使用できるようにするために、Drupal8 では、PHPの高度な機能と最新のサードパーティー・ライブラリが活用されています。Drupal7の開発者にとって大きく変更された機能もありますが、基本構造は同じです。

Drupal8におけるモジュール開発者の検証を進める上で提示される資料が分かりにくいようであれば、下記の情報を参照してください。Drupal8モジュール検証を進める上で包括的な知識は必要ありません。

オブジェクト指向プログラミング

OOP(オブジェクト指向プログラミング)は、導入時は困難であると考えられましたが、今では最良の方法として認められるようになりました。
PHPの最優良事例については、phptherightway.comを参照してください。こちらに記載されている全てのツールや技術をDrupalで採用しているわけではありませんが、PHPやPHPの様々な機能についての予備知識として役立つでしょう。
クラスおよびオブジェクト にあるPHPの公式ドキュメントや以下に示す実用的な入門書を読んで、OOPオブジェクト指向プログラミングへの知識を深めましょう。

Drupal8では、一般的なデザインパターンが採用されていますので、以下の資料を参考にして基礎知識を身につけておきましょう。

PHPの名前空間

PHPにおける名前空間の概念について知識があまり無い場合は、以下の資料を参照してください。

例:「block.module」の名前空間

namespace Drupal\block;

Drupalの名前空間基準を参照してください。詳細については、 DrupalでのPSR-4の使用を参照してください。

Dependency Injection(DI)

DIは、OOPデザインパターンの一つなのですが、Drupal 8で多用されており、コアAPIを使用するのにこの基本知識を持つことがとても重要であるため、ここで説明します。

PHPのDIやその関連ページでしっかり学習して下さい。Drupalは、Symfony2のサービスコンテナ参照を多用しているので、特にこの資料 が重要です。

以下も参照してください。

Symfony2

Symfony2は、様々なPHPプロジェクト内のコードの重複を削減するために、Drupalが取り入れているフレームワークです。Drupal8において、ルーティングやセッション、サービスコンテナなどを扱う処理のソースコードのほとんどは、Symfony2から取り入れたものです。このようになった経緯は、コアコミッターのalexpottさんのこのプレゼンテーションを参照して下さい。
Symfony2ブックを参照して、Symfony2に関する知識を深めましょう。Drupalを理解するために全て理解する必要はありませんが、Symfonyがどのように機能するかを知ることで、よりよいDrupal開発者そしてPHP開発者になれるでしょう。また、Symfony Glossaryにも興味を持つでしょう。

アノテーション

Drupal8は、PHPのアノテーションを利用しています。プラグインを見つけたり、実行されているコードにコンテキストやメタデータを提供するために、特別なシンタックスを利用した@docblock のコメントがコードに追加されます。アノテーションはDoctrine annotation parser を利用して読み込まれ、Drupalがコードが何をするのかを理解しやすい情報に変換されます。
詳細については、プラグインのための注釈を参照してください。
Drupal8の注釈タイプのリストも参照してください。

参考資料:PHPDoc (Wikipedia)

プラグイン

プラグインは、他のプラグインに簡単に書きだせるような方法で、一連の機能を提供します。似たような機能を持つプラグインは、同じプラグインタイプとなります。例えば、「Field widget」はプラグインのタイプであり、各field widget (テキスト項目、テキスト・エリア・日付)は、このプラグインを使って実装されています。

詳細については、Drupal8のプラグインAPI を参照してください。

サービス

Service Container For Drupal Geeks

その他のリソース

Drupal 8を今すぐ利用するのに以下のリソースが必ず役に立つでしょう。

翻訳元URL:https://www.drupal.org/getting-started-d8-bkg-prereq