DrupalCon

Acquia Lightning を使ってみよう

January 8, 2021 1 分で読めます
オープンソースのDrupalディストリビューション「Acquia Lightning」についての概要、基本機能やAcquia LightningがDrupalプロジェクトにもたらすメリットなど、Drupal開発にAcquia Lightningを使う方法について紹介します。
DrupalCon

オープンソースのDrupalディストリビューション「Acquia Lightning」についての概要、基本機能やAcquia LightningがDrupalプロジェクトにもたらすメリットなど、Drupal開発にAcquia Lightningを使う方法について紹介します。

Drupalのディストリビューションとは?

Drupalは機能の一つ一つがモジュールという小さい単位で提供されています。例えばコア機能のViewsはViews(クエリビルダーツール)とViews UI(ViewsのUIを提供)という二つのモジュールによって、管理画面からボタンをぽちぽち押すだけでコンテンツの見せ方を制御できます。Drupalの多言語機能と一言で言っても、4つのモジュールを通して提供されており、不必要なモジュールは(依存関係がない限り)非有効化してアプリケーションを軽量に保つことができます。コアで足りない機能は、まずコントリビューションモジュールで補えるか検討します。Drupalは巨大なOSSプロジェクトであり、無料でインストールして使うことができるコントリビュートモジュールが4万個以上 Drupal.org 内で公開されています。Googleアナリティクスの埋め込みやMAツールとの連携など、よく使われる機能はほとんどコントリビュートモジュールによって容易に導入することが可能です。

DrupalモジュールのエコシステムはDrupalアプリケーションの開発において非常に強力な武器となりますが、実際問題、4万個の中から自分の要件に合うものを探すのは大変です。本当に使えるものか動作を試したり、似たようなモジュールが見つかったたら比較を行い、またモジュールによっては、とあるAモジュールとBモジュールを同時に利用すると干渉して意図した通りに動かないこともあるので、事前の検証が必要です。

モジュールを組み合わせてシステムを構築することを、Drupalではよくレゴブロックに例えられます。一つ一つは小さな部品ですが、組み合わせ次第で大きな城からドラゴンまで、多様に形を変えて構成することができます。では、あなたがレゴブロックで城を作る時を想像してみてください。バラバラっと山になって散らばったレゴブロックから一つ一つ選別していくのではなく、おそらく、城が作れるパッケージ化されたレゴブロック一式を購入するのではないでしょうか。Drupalでも同様に、ディストリビューションと呼ばれる特定の用途に合わせてモジュールやテーマをパッケージ化されたものを使用することができます。SNS に特化した Open Social、メディアサイトに特化した Thunder が有名です。そしてAcquia Lightningもディストリビューションの一つです。

Acquia Lightning とは

Acquia Lightningが、何に特化したディストリビューションなのかと言いますと、コンテンツ編集者に優れたオーサリング体験を提供するために、Drupal上で実装する開発者がスピーディーに快適に開発できるように支援するためのものです。つまりDrupalを触るコンテンツ編集者と開発者のためのディストリビューションになります。

Image

Drupalでよく使われているモジュール(PathautoやMetatagなど)を標準で入れてくれていたり、そしてそれらのモジュールは、モジュール同士で干渉を起こさないことをAcquia Lightningが保証しています。これによって、モジュールの調査や設定などの開発の前行程の負荷を軽減することができます。

Acquia Lightningでは、メディアレイアウトワークフローAPIの4つの分野を軸に機能を提供しています。

メディア

CKEditorに、メディアを埋め込むためのボタンが設置されています。素のDrupalでは、環境設定の テキストフォーマットとエディタ(/admin/config/content/formats) から自分で設定する必要があります。

Image

Tweet、Instagram、ビデオなどのメディアタイプが標準でサポートされています。

Image

ドラッグ&ドロップでの画像のバルクアップロードができます。

Image

CKEditorから、ツイートやInstagramの投稿、YouTube/VimeoビデオのURLから埋め込みコンテンツを作成できます。

Image

レイアウト

Acquia Lightningには「ランディングページ」というコンテンツタイプが定義されており、Layout Builderが組み込まれています。Drupal 8.9からコアに導入されたLayout Builderはドラッグ&ドロップで記事のレイアウトを構成できます。

Image

ワークフロー

承認ワークフローを構築するためのツールが含まれています。Acquia Lightningでは、デフォルトで4つのワークフローのステータス(ドラフト、レビューが必要な状態、公開済み、アーカイブ済み)のいずれかでコンテンツを管理することができます。独自のステータスを作成し、それらの間の遷移を定義することができます。また、将来の特定の日時にコンテンツをステート間で遷移させるようにスケジュールすることも可能です。

Image

API-First

標準化されたWeb APIを介して、デカップリングされたアプリケーションにデータを配信するためのAPIサーバーをDrupal上で素早くセットアップすることができます。Lightningは認証、承認、APIコンシューマーへのデータ配信のためのツールキットとして、OpenAPISimple OAuthモジュールをインストールします。

Image

Acquia Lightningのインストール

サクッとインストールできるスクリプトが用意されているので、今回はそれを使って起動したいと思います。

$ composer create-project acquia/lightning-project lightning-qs
$ cd lightning-qs && composer quick-start


もし以下のようなメモリ上限エラーが発生した場合は、php.ini ファイルの memory_limit の値を -1 に書き換えて再度 composer create-project から開始します。

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 61440 bytes) in /path/to/dir/lightning-qs/docroot/core/lib/Drupal/Core/Cache/MemoryBackend.php on line 109
Script php docroot/core/scripts/drupal quick-start lightning --no-interaction handling the quick-start event returned with error code 255


正常にインストールが完了すれば、 http://127.0.0.1:8888 から起動済みのサイトにアクセスできます。

Image

Reports > Status report (/admin/reports/status) ページの Installation profile から、Acquia Lightningがインストールされていることが分かります。

Image

まとめ

Acquia Lightningは開発者、編集者向けの嬉しいツールや初期設定がたくさん盛り込まれたディストリビューションです。色々触ってみてください。

参考資料

関連記事

全て表示する