Umi Blog

ウミブログ

ストレージエンティティを活用しよう

Studio Umi
ストレージエンティティを活用しよう

こんにちは!今回はストレージエンティティについて紹介したいと思います。

ストレージエンティティとは

ストレージエンティティとはデータ保存に特化したエンティティです。

コアにはまだ入っておらず、こちらのモジュールをインストールすると使用できるようになります。

ストレージエンティティの特徴

ストレージエンティティの特色として、デフォルトでは表示画面が無いということが挙げられます。(オプションで表示画面を作ることは可能です)

↓ビュータブが無いストレージの編集画面

ストレージエンティティの編集画面

ですが、コンテンツエンティティの一種なので、他のコンテンツエンティティと同様に

  • 管理画面でのバンドルやフィールドの追加機能
  • リビジョン機能
  • 翻訳機能
  • Views
  • JSON:APIやREST APIからの出力機能
  • ワークフロー機能
  • マイグレーション

などの機能を使うことができます。

装飾の無い、シンプルなエンティティといった感じで、デフォルトでは最小限の機能しかない反面、汎用性が高いです。

「データ保存に特化した」と書きましたが、カスタマイズ次第でいろいろな機能を付けることができるので、何か特殊な機能を持ったカスタムエンティティを作る際の雛形として使うのもアリだと思います。

ノードとの比較

ノードもよくデータ保存目的で使われますが、ストレージはディスプレイやURLが生成されないので、ノードに比べ軽量です。ただリビジョン比較機能や各種APIなどノードにしかない機能もあるので注意が必要です。

ノードストレージ
ディスプレイ機能○○(オプションで付けることができる)
URLエイリアス○☓
リビジョン比較機能○☓

パラグラフとの比較

ノードなどの一部のフィールドをセクション化するためによくパラグラフが使われていますが、パラグラフはあくまで親エンティティがあることを前提に設計されています。それに対しストレージは単純なエンティティ参照なので、親エンティティや自分を保存したときの挙動が違います。

パラグラフストレージ
親エンティティが無くても表示・編集できるX○
複数エンティティで使い回せるX○
親エンティティ編集時に編集できる○○(Inline Entity Formが必要※)
自分を更新すると親エンティティも更新される○☓(親エンティティに影響があるのはストレージを追加/削除した場合のみ)
親エンティティのリビジョンを巻き戻すと自分のリビジョンも巻き戻る○☓

※ Inline Entity Formは親エンティティのフォームで参照先エンティティの内容を編集することができるモジュールです。(↓ 「材料」の中身がストレージ)親エンティティのフォームからストレージを編集するには必須になります。

Inline Entity Form で子エンティティを編集する画面

ストレージエンティティに最適なケース

ストレージを使うのに最適なケースは以下になります。

ディスプレイが不要なコンテンツがある場合

  • ヘッドレスの場合
  • 計算の中間値など内部で保持したい値がある場合

複数のフィールドをひとかたまりにしたい場合

特に、

  • 複数のエンティティで参照したい場合
  • 親エンティティを巻き戻したときにストレージが巻き戻らなくても大丈夫な場合

というわけで、ストレージエンティティの紹介でした。弊社でも最近はいろいろなプロジェクトで使っています。便利なのでぜひ使ってみてくださいね。

\

小さなご意見も、私たちにとっては大きなヒントです!

ぜひ率直なご感想をお寄せください

/

この記事はお役に立ちましたか?

スタジオ・ウミのメンバー

Masters of Drupal Engineering.

人に、技術に、品質に、まっすぐ。

Download
会社案内をダウンロード
Contact
お気軽にお問い合わせください
Recruit
スタジオ・ウミの採用情報