本文へ移動
STUDIO UMI
DRUPAL BLOGDrupalブログ

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

Sachiko Nitta

こんにちは!スタジオ・ウミのエンジニアの新田です。今回はストレージエンティティについて紹介したいと思います。

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

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

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

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

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

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

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

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

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

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

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

ノードとの比較

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

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

パラグラフとの比較

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

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

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

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

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

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

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

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

特に、

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

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

スタジオ・ウミは15年以上の実績を誇るDrupal専門の開発会社です。豊富な知見とノウハウでDrupalサイトの開発や技術サポートなどDrupal関連サービスをワンストップでご提供します。

RECRUIT

新たなステージを共に歩んでいける
コアメンバーを募集しています

採用情報

CONTACT

お仕事のご相談やお見積依頼など、
お気軽にお問い合わせください。

お問い合わせ