Umi Blog
ウミブログ

こんにちは!今回はストレージエンティティについて紹介したいと思います。
ストレージエンティティとはデータ保存に特化したエンティティです。
コアにはまだ入っておらず、こちらのモジュールをインストールすると使用できるようになります。
ストレージエンティティの特色として、デフォルトでは表示画面が無いということが挙げられます。(オプションで表示画面を作ることは可能です)
↓ビュータブが無いストレージの編集画面
ですが、コンテンツエンティティの一種なので、他のコンテンツエンティティと同様に
などの機能を使うことができます。
装飾の無い、シンプルなエンティティといった感じで、デフォルトでは最小限の機能しかない反面、汎用性が高いです。
「データ保存に特化した」と書きましたが、カスタマイズ次第でいろいろな機能を付けることができるので、何か特殊な機能を持ったカスタムエンティティを作る際の雛形として使うのもアリだと思います。
ノードもよくデータ保存目的で使われますが、ストレージはディスプレイやURLが生成されないので、ノードに比べ軽量です。ただリビジョン比較機能や各種APIなどノードにしかない機能もあるので注意が必要です。
| ノード | ストレージ | |
|---|---|---|
| ディスプレイ機能 | ○ | ○(オプションで付けることができる) |
| URLエイリアス | ○ | ☓ |
| リビジョン比較機能 | ○ | ☓ |
ノードなどの一部のフィールドをセクション化するためによくパラグラフが使われていますが、パラグラフはあくまで親エンティティがあることを前提に設計されています。それに対しストレージは単純なエンティティ参照なので、親エンティティや自分を保存したときの挙動が違います。
| パラグラフ | ストレージ | |
|---|---|---|
| 親エンティティが無くても表示・編集できる | X | ○ |
| 複数エンティティで使い回せる | X | ○ |
| 親エンティティ編集時に編集できる | ○ | ○(Inline Entity Formが必要※) |
| 自分を更新すると親エンティティも更新される | ○ | ☓(親エンティティに影響があるのはストレージを追加/削除した場合のみ) |
| 親エンティティのリビジョンを巻き戻すと自分のリビジョンも巻き戻る | ○ | ☓ |
※ Inline Entity Formは親エンティティのフォームで参照先エンティティの内容を編集することができるモジュールです。(↓ 「材料」の中身がストレージ)親エンティティのフォームからストレージを編集するには必須になります。
ストレージを使うのに最適なケースは以下になります。
特に、
というわけで、ストレージエンティティの紹介でした。弊社でも最近はいろいろなプロジェクトで使っています。便利なのでぜひ使ってみてくださいね。
小さなご意見も、私たちにとっては大きなヒントです!
ぜひ率直なご感想をお寄せください
この

Masters of Drupal Engineering.
人に、