Кажется, я сейчас разрабатываю дополнения ко многим модулям, которые используют Entity API , и эта entity_metadata_wrapper()
функция продолжает появляться.
Страница документации говорит об этом:
Возвращает оболочку свойства для данных.
Если объект обернут, оболочка может использоваться для получения дополнительных оболочек для свойств полномочий.
Не обращая внимания на чудесное фрейдовское написание слова «сущность», я не совсем понимаю, какова цель этих оболочек.
Я понимаю, что функция по существу возвращает EntityDrupalWrapper
класс:
Оболочка облегчает применение обратных вызовов get и setter свойств сущностей
Но я не могу понять, как это облегчает жизнь.
Например, чтобы обновить свойство статуса узла, я мог бы использовать этот код:
$node = node_load($nid);
$node->status = 1;
node_save($node);
Это довольно чисто. Насколько я понимаю (но может и ошибаться) использование эквивалентного кода entity_metadata_wrapper()
было бы более многословным.
Я не уверен, что это просто использование термина «обертка», что меня здесь смущает, но я также просмотрел код в модуле Entity и на самом деле я не ближе к его пониманию.
Может ли кто-нибудь объяснить, каковы преимущества использования этой функции, и, возможно, предоставить простой пример кода для общего варианта использования?