Drupal 7のエンティティ


14

Drupal 7のDrupalエンティティとは何ですか?Drupal Commerceはエンティティとして製品を構築したことを理解しています。コアEntity APIとEntity APIのcontribアドオンがあることがわかっています。

今年は、Drupal 7、NoSQL、および必要に応じてエンティティAPIを使用したいプロジェクトがいくつかありますが、必要な場所がわかりません。

ジョブリストサイトを構築していると仮定します-ジョブは必ずしもノードコンテンツのようなものではありませんが、それをエンティティにすることができますか?

さらに、エンティティとモジュールと対話する機能を引き続き取得できますか?同様に、ジョブ投稿エンティティがPathautoでエイリアス化され、ビューに表示されるとともに、XMLサイトマップに表示されます。

回答:


9

エンティティはhook_entity_info()で定義されたデータ構造であり、フィールド化可能です。つまり、エンティティをフィールドに追加できます。

Drupal 7 Coreでは、ノード、ユーザー、コメント、語彙、および用語はエンティティです。

Contribにはさらに多くの機能があります。たとえば、プライベートメッセージやコマースなどがあります。

ただし、ノードとしてのジョブ投稿は完全にうまくいくと思います:)エンティティにはPathauto(トークン)、ビューなどの統合が自動的にはありません。


9

エンティティは、ノード、ユーザーなどの上のメタレベルです。

基本的に、D6を見ると、これらのタイプのものにまたがる多くの重複したモジュールと機能があります。たとえば、cckフィールドをユーザーおよび分類用語に添付するモジュールがあります。

D7では、これらをアーキテクチャ的に同じ方法で扱うことが決定されたため、エンティティに対して何かを行うモジュールがある場合、ノード、用語、およびユーザーに対して機能するはずです。

Drupalの以前のバージョンでは、Commerceのようなモジュールには、カスタムノードタイプを構築するか、Drupalの内部システムから完全に外れて独自のタイプを定義するという2つのオプションがありました。エンティティを使用すると、既存のタイプとは異なるもののタイプとして製品を説明することができますが、それでも構成のフィールドなどの機能を活用できます。

ジョブリストサイトを構築していると仮定します-ジョブは必ずしもノードコンテンツのようなものではありませんが、それをエンティティにすることができますか?

あなたは出来る。物の実体をあまりにも早く作ることに注意すべきだと思います。多くの場合、カスタムノードタイプは依然として必要なことを行います。ジョブはノードに対して異なるタイプのものをリストしていますか、それともいくつかの特別なプロパティを持つノードですか?


3

私はいくつかのプロジェクトで、実際には「コンテンツ」ではないものにエンティティを使用し始めました。いつ公開されたか、作者が誰であるかをあまり気にしない場合に使用します。

エンティティを定義する本当の利点は、独自のカスタムモジュールを開発している場合です。素敵なテーブル構造とDrupalの良さ(Fieldability、Views統合など)を無料で入手できます。独自のカスタムテーブル構造を作成したり、必要に応じてノードタイプを改造したりする必要はもうありません。また、パフォーマンスの面でエンティティが優れているはずなので、どれだけ軽量であるかが気に入っています。D6でノードを使用してクエリを実行したことがある場合、その意味が理解できます。


1

ノード、ユーザー、分類法は、Drupalエンティティの例です。エンティティの主な機能は、他のエンティティに割り当てることができることです。ユーザーはノードに関連付けられ、分類法はノードとユーザーに割り当てることができます。

あなたがジョブとして説明するものをユーザーまたはノードに割り当てることができる場合、私はそれをエンティティにします。「ジョブ」にできるものが単なるコンテンツタイプである場合、私はそれをエンティティにしません。


1

あなたが本当に少数の言葉で言いたいなら、あなたはエンティティがdrupalが知っている単なるデータであり、どこにでも保存できると言うことができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.