「エンティティAPI」はDrupal APIに何を追加しますか。また、モジュールがそれに依存するのはなぜですか?


12

エンティティのAPIモジュールは、Drupalの中で定義されたエンティティのAPIを拡張します。どの場合に、モジュールはそのモジュールから提供されるAPIを使用する必要がありますか?Entity APIモジュールに依存している場合、新しいエンティティを実装するモジュールは簡単に作成できますか?

「作成しやすい」とは、Entity APIを使用するモジュールは、Entity APIを使用しないモジュールと比較して、作成するコードが少ないことを意味します。

プロジェクトページを読みましたが、Drupalコアコードのみに依存するモジュールではなく、Entity APIモジュールに依存するモジュールを作成することを好む理由がまだ完全にはわかりません。ルールを拡張し、エンティティを実装するモジュールは、Entity APIモジュールを使用する必要があることを理解しています。最初のケースでは、理由は、ルールモジュールがエンティティAPIモジュールに依存していることでもあります。


1
リンクしたプロジェクトページは、モジュールの機能のかなり具体的な概要を提供します。モジュールがそこにレイアウトされているもの以外に、モジュールに依存する理由について具体的な質問がありますか?
jhedstrom

Entity APIモジュールを使用しない場合、このサンドボックスプロジェクトのようなモジュールを作成することになります。このサンドボックスプロジェクトにはテストがなく、貢献者は1人だけですが、エンティティAPIには両方があります。
ポールm

回答:


15

完全ではありませんが、私が知っているいくつかの利点があります:

  • Drupalコアは、エンティティをロードするためのEntityControllerのみを提供します。保存、更新、削除を行うには、自分で作成するか、Entity APIを使用する必要があります。
  • hook_entity_property_info()でエンティティの基本プロパティを公開できます。例については、privatemsg_entity_property_info()を参照してください。これの利点は、rules.moduleがエンティティプロパティを認識し、ルールを使用してそれらを読み書きできることです。また、トークンの統合も無料で利用できます。
  • また、エンティティの管理UIを自動的に提供できます。

管理者UIとはどういう意味ですか?この一部はコアによって処理されます。
googletorp

2
コアはフィールドを構成してエンティティにアタッチするUIを提供し、エンティティAPIはカスタムエンティティのエンティティを作成および管理するUIを提供しますが、コアはそのようなことはしません。
ベルディール

1
偉大metadata_wrapperのを忘れないようにdrupalcontrib.org/api/drupal/...あなたは簡単にコード内のフィールドの値にアクセスすることができます
mojzis

7

自動ビュー統合、管理UI、エクスポート可能なエンティティ(これらはすべてオプションです)。さらに、D7に入らなかった多くの構文シュガーの事柄とあなたがそれらを必要とします(一般的なentity_save()、entity_create()、カスタムロジックを「エンティティクラス」に配置...)

さらに、モジュール(efq_views、ルール)は、プロパティを使用して本当にクールなことを行います。


-1

エンティティapi(モジュール)は不完全であると見なされたため、リリース前に基本的にdrupal 7コアから削除されたと思います。基本的なエンティティapi CRUDのみが、GMリリースのdrupalコアに残っています。

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