2013-10-31 13 views
12

Perché non utilizzare sempre solo l'embed?Twig embed vs include, qualsiasi motivo di utilizzo include

In base ai documenti, il tag embed combina il comportamento dei tag include ed estensioni.

Capisco che in molti casi non è necessario estendere e solo voler rendere il contenuto di un altro modello, ma a me sembra che si possa semplicemente utilizzare l'embed e servire a tale scopo. Ci sono delle ramificazioni delle prestazioni di embed di cui essere a conoscenza? Qualche differenza di funzionalità mi manca?

+0

Domanda simile - "Estensione o inclusione - Cosa c'è di meglio in Twig?": Http://stackoverflow.com/questions/7051743/extending-or-including-what-is-better-in-twig – Isinlor

risposta

14

vorrei riassumere le differenze e le somiglianze tra il Embed e Include come segue,

  • Entrambi sono stati aggiunti ramoscello per rendere il codice HTML frammenti riutilizzabile.
  • Entrambi sono utilizzati per la separazione funzionale dei modelli (piè di pagina, intestazione, ...)
  • Entrambi sono dinamici.
  • Include è utilizzato per avvolgere il codice che ha una struttura HTML non flessibile.
  • Embed consente flessibilità.

Sulla base delle differenze, Include dovrebbe essere usato solo quando è necessario dividere un modello in molti sotto-modelli funzionali e riutilizzare il codice avvolto altrove.

Mentre Embed viene utilizzato quando è necessario personalizzare i modelli riutilizzabili.

Quindi, è più una questione di progettazione di ogni altra cosa (prestazioni, l'esecuzione di codice, ...)

Scegliere il supporto che si adatta alle vostre esigenze.

+1

ok grazie, ma la mia domanda è: l'embed consente flessibilità, perché non lo si usa sempre. anche se il tuo modello non richiede una struttura flessibile ora, potrebbe in futuro e questo ti impedirebbe di dover apportare tale modifica – DMTintner

+0

Ho aggiornato la mia risposta, Puoi usare embed ovunque, È una questione di design. Io personalmente usavo l'embed solo quando necessario. –

+0

grazie, puoi confermare che non ci sono differenze di prestazioni tra i due però? – DMTintner