Parece que estou desenvolvendo complementos para muitos módulos que usam a API de entidade no momento, e a entity_metadata_wrapper()
função continua aparecendo.
A página de documentos diz o seguinte:
Retorna um invólucro de propriedade para os dados fornecidos.
Se uma entidade for quebrada, o wrapper poderá ser usado para recuperar outros wrappers para as propriedades de entidade.
Ignorando a grafia maravilhosamente freudiana da palavra "entidade", não entendo realmente qual é o objetivo desses invólucros.
Eu entendo que a função essencialmente retorna uma EntityDrupalWrapper
classe:
O wrapper facilita a aplicação de retornos de chamada getter e setter de propriedades da entidade
Mas o que não consigo entender é como isso facilita as coisas.
Por exemplo, para atualizar a propriedade status de um nó, eu poderia usar este código:
$node = node_load($nid);
$node->status = 1;
node_save($node);
Isso é bem limpo. Pelo que entendi (mas pode estar errado) o código equivalente usando entity_metadata_wrapper()
seria mais detalhado do que isso.
Não tenho certeza se é simplesmente o uso do termo 'wrapper' que está me atrapalhando aqui, mas também examinei o código no módulo Entity e não estou nem perto de entendê-lo.
Alguém é capaz de explicar quais são os benefícios do uso dessa função e talvez fornecer um exemplo de código simples para um caso de uso comum?