Sembra che stia sviluppando componenti aggiuntivi per molti moduli che utilizzano Entity API al momento e la entity_metadata_wrapper()
funzione continua a spuntare.
La pagina dei documenti dice questo a riguardo:
Restituisce un wrapper di proprietà per i dati forniti.
Se un'entità viene spostata, il wrapper può essere utilizzato per recuperare ulteriori wrapper per le proprietà dell'entità.
Ignorando l'ortografia meravigliosamente freudiana della parola "entità", non capisco davvero quale sia lo scopo di questi wrapper.
Capisco che la funzione essenzialmente restituisce una EntityDrupalWrapper
classe:
Il wrapper semplifica l'applicazione dei callback getter e setter delle proprietà dell'entità
Ma quello che non riesco a capire è come semplifichi le cose.
Ad esempio, per aggiornare la proprietà status di un nodo potrei usare questo codice:
$node = node_load($nid);
$node->status = 1;
node_save($node);
È abbastanza pulito. A quanto ho capito (ma potrebbe essere sbagliato) l'utilizzo del codice equivalente entity_metadata_wrapper()
sarebbe più dettagliato di così.
Non sono sicuro che sia semplicemente l'uso del termine "wrapper" che mi fa inciampare qui, ma ho anche cercato il codice nel modulo Entity e non sono molto più vicino a capirlo.
Qualcuno è in grado di spiegare quali sono i vantaggi dell'utilizzo di questa funzione e forse fornire un semplice esempio di codice per un caso d'uso comune?