メインコンテンツに移動

メインナビゲーション

  • ホーム
  • サイトマップ
  • ビデオ
  • ご連絡

パンくず

  • ホーム
  • Drupalのエンティティ(Entity)の概念と構成

Drupalのエンティティ(Entity)の概念と構成

drupal
entity type

エンティティ(Entity)が本体とバンドル(Bundle)から構成されます

  • エンティティ(Entity)がエンティティ本体と一つ以上のバンドル(Bundle)から構成されます
  • エンティティ(Entity)がオブジェクト指向のような構成となります
    • Entityが抽象なクラスに似ています(構造の定義)
    • バンドル(Bundle)がクラスに生成されたインスタンスに似ています
  • エンティティ(Entity)の内容をプロパティ(property)で定義します
  • バンドル(Bundle)の内容をフィールド(field)で定義します
  • 例: ルーム(Room)エンティティ(Entity)
    Drupalのエンティティ(Entity)とバンドル(Bundle)の関係
    • 一つルーム(Room Entity)の定義に、複数のバンドル(Bundle):ホール/会議室などがあります

DB上ではエンティティ(Entity)定義テーブルとバンドル(Bundle)にあるフィールドテーブルがあります

  • DBのテーブル構造からみると、エンティティ(Entity)の定義テーブルとバンドル(Bundle)のフィールドテーブルがあります
  • エンティティ(Entity)のプロパティが必要に応じて任意に定義ができます
  • バンドル(Bundle)の内容を定義するフィールド(Field)も必要に応じてFieldAPIに従って定義します
    DB上ではEntityの定義テーブルとBundleのフィールドテーブルがあります

 

エンティティ(Entity)利用の価値:オブジェクト指向な構造と任意にプロパティ、フィールドの定義ができます

  • ノード/ユーザー/タクソノミーなどがエンティティ(Entity)タイプです
    • ノード(node)はエンティティタイプ(Entity Type)、記事(Article)、基本ページ(Basic page)がバンドル(Bundle)となります
    • ユーザー(User): エンティティタイプ(Entity Type)とバンドル(Bundle)一つです
    • タクソノミ(Taxonomy):エンティティタイプ(Entity Type)で、タクソノミーターム(Taxonomy term)はバンドル(Bundle)です
  • エンティティ(Entity)の構造上はオブジェクト指向のような考えなので、現実のオブジェクト作成に有利となります
  • エンティティ(Entity)のプロパティが任意の項目、数での定義ができます
    • プロパティが一つのテーブルで纏められます(フィールドが複数のテーブルで構成され)
    • 必要に応じて項目の定義ができます(柔軟性が高い)

エンティティ(Entity)利用の弱点:EntityAPIより定義、開発する必要があります

  • エンティティ(Entity)の扱いモジュール(ECK:Entity Constuction Kit)がありますが、エンティティのプロパティが固定されていて、任意に定義はできません
  • エンティティ(Entity)データを扱うにはカスタムモジュールを作成して、カスタマイズする手間がかかります(EntityAPIの知識を習得する時間がかかる)
ホーム

古松

検索

Article Category

  • apache(7)
  • css(19)
  • drupal(295)
  • Electron(4)
  • html(34)
  • javascript(27)
  • laravel(4)
  • linux(5)
  • macOS(2)
  • mysql(13)
  • php(19)
  • python(4)
  • SEO(12)
  • video(72)
  • Visual Studio Code(4)
  • windows(13)
  • wordpress(32)