Drupal 入門から中級者までの手引

# Drupal とは
世界中で稼働しているWEBサイトの半分はCMSで動いてるそうです。
そのCMSの中で世界3位のシェアを誇っているにも関わらず、日本では不人気のCMS、それがDrupalです。

人気のない理由として、「Drupalは難しい」「日本語ドキュメントが少ない」という声をよく聞きますが、それは、Drupalがエンタープライズ向けのサイトを意識した、高度なアーキテクトを採用しているため難解であり、難解ゆえに万人受けせずに広まりづらいので、日本語ドキュメントも普及していないのだと考えています。

ざっくりではありますが、海外では、ブログや小規模サイトをCMSで構築するときはWordpressが適しており、エンタープライズ向けの大規模システムをCMSで構築するときはDrupalが適しているという見方がされているそうです。

※もちろんWordpressを使った大規模サイトもあります

[世界のCMSシェアから見るCMS導入の傾向](https://www.itra.co.jp/webmedia/cms-share.html)

# 当記事について
筆者は、Drupalに特化した会社に属していませんし、Drupal専門のフリーエンジニアでもないですが、複数のプロジェクトでDrupalを活用し、その出来のよさを知りました。

また、最近、諸事情で Acquia Certification Grand Master というDrupal関連の資格の認定を受けたのですが、その学習の中で、Drupalのことをより知っていくと、日本で不人気のままにしておくのはもったいないなと感じました。

なので、当記事では、難解と感じられることの多いDrupalのスキル獲得方法を紹介し、少しでも、日本におけるDrupalの人気がでるとよいかなと考えています。

# Step1 入門
まず、Drupalの学習を始めるときに欠かせないのは、ANNAIさんが提供してくださっている、「Drupal 8初心者講座」です。

[Drupal 8初心者講座](https://annai.co.jp/drupal/beginner)

ANNAIさんは、先程ちらっと触れた Acquia Certification というDrupalの資格の日本語版の監修をされていたり、Drupalを使った先進的なシステム構築の事例をもっている会社ですので、その内容は信頼できるものとなっています。

ちなみに、初心者向けの書籍も出版されているので、書籍が好きという方は、そちらもオススメです。


[Drupal 8 スタートブック―作りながら学ぶWebサイト構築](https://www.amazon.co.jp/Drupal-8-%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88%E3%83%96%E3%83%83%E3%82%AF%E2%80%95%E4%BD%9C%E3%82%8A%E3%81%AA%E3%81%8C%E3%82%89%E5%AD%A6%E3%81%B6Web%E3%82%B5%E3%82%A4%E3%83%88%E6%A7%8B%E7%AF%89-Think-Books/dp/4295000582)

初めてDrupalを使うプロジェクトに参加・企画されるというエンジニアの方は、これらを読んでおくとよいとおもいます。ただ、英語に抵抗の少ない方は、書籍は飛ばして、Step2に行ってよいとおもいます。

# Step2 英語に慣れる
残念ながら、Drupalで案件をする場合に、英語とのお付き合いはきってもきれない関係となります。

後ほど、日本語での良記事というのを紹介しますが、そういった記事は本当に稀で、英語の公式ドキュメントや記事を読むことに慣れなければいけないです。

そこで、英語の感覚を掴みつつ、Drupalの概要を学べるコンテンツとして以下の2つを紹介させていただきます。

[Drupal 8 Beginner's Course](https://www.youtube.com/playlist?list=PLpVC00PAQQxHzlDeQvCNDKkyKRV1G3_vT)
[Drupal 8 Site Building Course](https://www.youtube.com/playlist?list=PLpVC00PAQQxGwyvUD_tYcBbLJqRC1CZ6U)

この2つは、Youtubeの再生リストになるため、それぞれ63本、48本となかなかの動画本数で構成されているものではありますが、1本当たり数分程度の動画なので、割とサクサクと見れるとおもいます。実際の画面を見ながらの解説も多いので、英語を聞き取れなくもなんとなく内容を理解できるはずです。

なお、このコンテンツは、Drupalのリーディングカンパニーである、Acquia社が提供しているもので、こちらも信頼あるものとなります。

# Step3 トレンド
Step1、Step2でDrupalの基礎知識はついているはずなので、次は、Drupalにはどういったトレンドが起きているかを確認します。
Drupalは先進的な取り組みが多く、変化の大きいCMSになるので、情報キャッチが大切になります。

ここでは、更新頻度も高く、個人的には勉強になることが多い2つのブログを紹介させていただきます。

[studio-umi Drupalブログ](https://www.studio-umi.jp/blog)
[ANNAI マガジン](https://annai.co.jp/article)

Drupal9ネタなど先行した情報が取り上げられたりするので、過去数年分を遡ってみても役立つものが多いです。

# Step4 module、theme 深堀り
Step3 までされている方は、おそらく、Drupalプロジェクトはある程度こなせるようになっているとおもいます。

「管理画面からコンテンツタイプ、タクソノミー、Viewsなどの設定を行い、module のフックを使って処理をカスタマイズし、themeのフックで見た目を調整する」

といったレベル感に達していれば、Drupalの初心者は卒業しているといえるとおもいます。

このレベル感の人にオススメなのが、module と themeの再学習です。
というのも、module と themeは覚えなければいけない範囲が多く、かつ奥深いものであるためです。
以下の2つの動画はそれぞれ module と theme について解説したもので、おさらいするにはちょうどよいです。

[Drupal 8 Layout and Theming Course](https://www.youtube.com/playlist?list=PLpVC00PAQQxG0sW9YOueVgouRp4aj1bng)
[Drupal 8 Module Development Course](https://www.youtube.com/playlist?list=PLpVC00PAQQxHi-llE9Z8-Q747NYWpsq6t)

こちらも、Step2と同様に、Acquia社が提供している動画となります。

# Step5 バックエンドスペシャリスト
より複雑なサイト（システム）の構築が必要な場合、というかDrupalの特性を活かしたシステムを構築する場合は、DrupalをCMSとして利用するだけでなく、フレームワークとして利用し、開発を行う必要があります。

「サービスコンテナを活用して機能（サービス）追加をし、Pluginを用いて管理画面に独自フィールドを提供する。Drupal8でフックから置き換わったイベントの活用もする」

といった感じでしょうか。

こういったスキルの獲得にオススメなのが、Acquia 社が、バックエンドスペシャリストという資格学習者向けに用意しているスタディーガイドです。

[Study Guide : Acquia Certified Back end Specialist](https://acquia-academy.gitbook.io/study-guide-acquia-certified-back-end-specialist/study-guide)

経験談ですと、上記スタディーガイドにあるリンクを片っ端から読めば、バックエンドスペシャリスト相当のスキルを獲得できます。ただ、以下のよう知識・経験がバックボーンとしてまだない方は、各リンクに書かれている内容を理解するのは少し厳しいかもしれません。

- オブジェクト指向
- サービスコンテナ
- イベントリスナー
- ユニットテスト
- コンポーサー
- HTML5、CSS3、jQuery
- Git

バックエンドスペシャリスト相当のスキルを獲得できればDrupal中級者と呼べるのではないでしょうか。

# おまけ
最後に、Drupalの理解を深めるのに役立つ日本語の良記事を紹介させていただきます。

[Drupalにおけるエンティティとは何か](https://www.studio-umi.jp/blog/7/677)
[Drupal8のカスタムモジュールでコンテンツを追加・読取・編集・削除](https://www.ipride.co.jp/blog/2305)
[Drupal 8 プラグイン その 1: プラグインの作り方](https://gotohayato.com/content/139/)
[Drupal 8 プラグイン その 2: プラグインデリバティブの作り方](https://gotohayato.com/content/140/)
[イベントディスパッチャーとイベントリスナー](https://tech.quartetcom.co.jp/2015/12/17/event-dispatcher/)
[Drupal 8のキャッシュは何種類あるのか](https://www.studio-umi.jp/blog/7/748)
[レンダリング配列のキャッシャビリティ　日本語訳](https://www.studio-umi.jp/blog/9/726)
[利用中のカスタムモジュールのテーブル定義を変更する](https://www.ipride.co.jp/blog/3168)
[Drupal8 Configuration schemaを活用しよう](https://www.studio-umi.jp/blog/14/353)
[Webアプリケーションフレームワークとしての Drupalの可能性](https://www.slideshare.net/blauerberg/drupal-for-web-application-framework)