現時点では、Entity APIを使用する多くのモジュールのアドオンを開発しているようですが、entity_metadata_wrapper()
関数は引き続きポップアップします。
ドキュメントのページには、それについて、これを言います:
指定されたデータのプロパティラッパーを返します。
エンティティがラップされている場合、ラッパーを使用して、エンティティプロパティのラッパーをさらに取得できます。
そこにある「実体」という言葉の素晴らしくフロイト的な綴りを無視すると、私はこれらのラッパーの目的が何であるか本当に理解していません。
関数は本質的にEntityDrupalWrapper
クラスを返すことを理解しています:
ラッパーは、エンティティプロパティのgetterおよびsetterコールバックの適用を容易にします
しかし、私が理解できないのは、それが物事を簡単にする方法です。
たとえば、ノードのステータスプロパティを更新するには、次のコードを使用できます。
$node = node_load($nid);
$node->status = 1;
node_save($node);
それはとてもきれいです。私が理解しているように(しかし間違っているかもしれませんが)使用entity_metadata_wrapper()
する同等のコードはそれより冗長です。
ここで私をつまずかせているのは単に「ラッパー」という用語の使用であるかどうかはわかりませんが、Entityモジュールのコードも調べましたが、実際にはそれを理解するのに少しも近づいていません。
誰でもこの関数を使用する利点を説明でき、おそらく一般的なユースケースの簡単なコード例を提供できますか?