2010-04-15 13 views
5

¿Por qué debería usar un componente en lugar de una acción que representa un parcial?Symfony: diferencia entre Acción + parcial y un Componente

Si las acciones pueden representar parciales, ¿cuándo es mejor usar componentes?

Dame luz sobre esto ..

Javi se utilizan

+2

acciones no están destinados a hacer que los parciales. Use un parcial como una "mini-plantilla" que sobresalga y componente como una "mini-acción y plantilla". – Tom

Respuesta

7

componentes cuando se desea incluir algún tipo de bloqueo en diferentes partes del sitio (por ejemplo, un "Top 10 de ventas" o algo similar) - que requiere algún código de controlador para representar. Incluye el resultado de un componente en otra plantilla de un componente de acción/parcial/otro utilizando

include_component($module_name, $component_name, array('var1' => $var1));
y el navegador debe invocar directamente la acción, por lo que no puede incluirla en otra plantilla (sin algún tipo de truco) Considere los componentes como un bloque reutilizable de html que puede incluirse en cualquier lugar, frente a las acciones que son toda la página representada y enviada al navegador

+0

¡Gracias !, esto es lo que estaba buscando: "Se supone que el navegador debe invocar directamente una acción, por lo que no se puede incluir su salida en otra plantilla (sin algún tipo de truco)". Pero mi pregunta ahora es: ¿cuál es su opinión acerca de eliminar componentes y agregar una forma de incluir acciones (de la misma manera que los componentes) en las plantillas? Estoy "pensando" en pedir eso como una característica para hacer que Symfony sea más simple. – ziiweb

+1

Preguntaría por lo que ya existe: los componentes están * exactamente * diseñados para incluir 'acciones' en las plantillas. – Raise

+2

no es una buena idea eliminar los componentes, porque son una versión ligera de las acciones (no pasan por el sistema de enrutamiento, filtros, etc. por lo que son más eficientes en su trabajo) – matei

5

parcial es una 'plantilla' que puede reutilizarse en cualquier página de vista. es simple & rápido. todos $ datos deben pasarse como parámetro al parcial. imo, debería ser preferido si es posible.

componente es como una 'plantilla con su propia acción' que se puede reutilizar en cualquier página de visualización. más potente, pero más lento en comparación con parcial. utilizar si tiene parciales que requieren lógica de negocio (es decir, la acción/controlador)

http://www.symfony-project.org/book/1_0/07-Inside-the-View-Layer#chapter_07_code_fragments

Cuestiones relacionadas