Tôi dường như đang phát triển các tiện ích bổ sung cho rất nhiều mô-đun sử dụng API thực thể tại thời điểm này và entity_metadata_wrapper()
chức năng tiếp tục bật lên.
Các trang tài liệu nói này về nó:
Trả về một trình bao bọc thuộc tính cho dữ liệu đã cho.
Nếu một thực thể được bọc, trình bao bọc có thể được sử dụng để truy xuất các trình bao bọc tiếp theo cho các thuộc tính quyền lợi.
Bỏ qua cách đánh vần Freudian tuyệt vời của từ 'thực thể' trong đó, tôi không thực sự hiểu mục đích của các hàm bao này là gì.
Tôi hiểu rằng về cơ bản hàm trả về một EntityDrupalWrapper
lớp:
Trình bao bọc giúp giảm bớt việc áp dụng các hàm gọi lại getter và setter của các thuộc tính thực thể
Nhưng những gì tôi không thể hiểu là làm thế nào nó làm cho mọi thứ dễ dàng hơn.
Ví dụ: để cập nhật thuộc tính trạng thái của một nút tôi có thể sử dụng mã này:
$node = node_load($nid);
$node->status = 1;
node_save($node);
Điều đó khá sạch sẽ. Theo tôi hiểu (nhưng có thể sai), mã tương đương sử dụng entity_metadata_wrapper()
sẽ dài dòng hơn thế.
Tôi không chắc liệu nó có đơn giản chỉ là việc sử dụng thuật ngữ 'trình bao bọc' đã khiến tôi vấp ngã ở đây không, nhưng tôi cũng đã xem qua mã trong mô-đun Thực thể và tôi thực sự không hiểu gì hơn về nó.
Có ai có thể giải thích những lợi ích của việc sử dụng chức năng này là gì không, và có lẽ cung cấp một ví dụ mã đơn giản cho trường hợp sử dụng phổ biến?