Posted by s-jack on May 7, 2014 at 7:11am
Drupalにおける、ノード、エンティティ、フィールド、プロパティの違いにおいてよくわかりません。
一般的にフィールド=プロパティと読んだりするかと思いますが。
内部構造的な問題を色々と解決しようと、D6,D7,D8で、モジュールだったり仕様変更だったり歴史と現在の方向性があるのかなあと何となく雰囲気は掴んでいますが、この辺をわかりやすく教えていただくことはできないでしょうか。
Drupalにおける、ノード、エンティティ、フィールド、プロパティの違いにおいてよくわかりません。
一般的にフィールド=プロパティと読んだりするかと思いますが。
内部構造的な問題を色々と解決しようと、D6,D7,D8で、モジュールだったり仕様変更だったり歴史と現在の方向性があるのかなあと何となく雰囲気は掴んでいますが、この辺をわかりやすく教えていただくことはできないでしょうか。
Comments
私は以下の内容で理解しています
たとえばこれ。
http://www.transnetcreation.com/diary/2011/02/19/001
http://www.transnetcreation.com/column/20110324
英文だと
https://drupal.org/node/1261744
これなど。
ただ私も自分でこの件を語れる程詳しくありません。すいません。
参考になれば。
オブジェクト指向の基本知識がある前提で大雑把に説明すると、
オブジェクト指向の基本知識がある前提で大雑把に説明すると、
エンティティが抽象(親)クラス、ユーザーやノードがエンティティの実装(子)クラスのようなイメージです。
Drupal 6以前は全てのデータはノード (ブロックやタクソノミー、ユーザーは除く)でしたが、
Drupal 7からは全てのデータはエンティティ(ノード、タクソノミー、ユーザー、etc)になっています。ただし、contribute moduleでは一部entityの概念を取り込んでいない物もあります(よく使われるものだとwebformなど)
フィールドはエンティティが持つメンバーの事を指す事が多いです。
プロパティはコンテキストによって意味がいろいろかもしれません。
wataru.katoさん、非常にわかりやすいサイトの紹介
wataru.katoさん、非常にわかりやすいサイトの紹介ありがとうございました。
blauerbergさん、別レスから飛んでしまってすみません、オブジェクト指向の基本理解していますので、理解できました。
なるほど、コンテンツタイプで定義出来るコンテンツ(ノード)以外の、オブジェクトつまり、
・メニュー
・カテゴリ
・コメント
・webform
・ユーザー
なんかがありますよね、これをRESTfulだとか色々弄れるように抽象化して汎化したものがエンティティでしょうか。
多言語化も恩恵はありますよね。D8はほぼ全て多言語化できるようですし。
webformは独自路線のフィールド拡張があり、D8ではどうなるのかなあなんて興味を持っています。
横道にそれますが、ez publishは全てクラスとオブジェクトで組み立てられており、オブジェクトがコンテンツのツリーに配置されるノードツリーという仕組みになっています。
よって、複数のノードに所属することで子オブジェクトを上下複数配置出来るようになっています。
ユーザーとグループもオブジェクトの上下関係なので、多層継承関係がスムーズにできます。
drupalとはノードとオブジェクトに位置関係が逆な感じですが、似た感じになってきました。
ez publishもsymfony2に移行していて過渡期であり、コミュニティー規模でDrupalのほうが盛んな感じです。
ez勉強会に何回か参加したことありますが、drupal良いんじゃね?ってのが直近の勉強会のテーマであったりします。
完成度はezですが、drupalはとてもこれから良さげです。
コントリモジュールが豊富なD7ですが、D8の完成が楽しみです。