2012-08-13 12 views
7

Oke, así que estoy a punto de hacer un sitio web usando Symfony 2.¿Para qué podría hacer un paquete? (Symfony 2)

¿Debo hacer un paquete "principal" que controla/reúne todos los otros paquetes? Con otros paquetes en los que estoy pensando, digamos un paquete de "galería" que controla cosas relacionadas con fotos, y un paquete de "tienda" que controla una parte de la tienda.

¿Cuál sería la mejor (o al menos buena) práctica y cómo lo harían los equipos profesionales?

Respuesta

3

Según la documentación de Symfony, un paquete debe ser consistente y estructura cerrada. Por lo tanto, si, por ejemplo, "tienda" y "galería" están relacionados de alguna manera (por ejemplo, usan el mismo modelo), entonces deberían estar en un paquete (AppBundle, CoreBundle, PlatformBundle, lo que usted desee). Pero si la galería es una pieza de código completamente separada y puede unirse fácilmente a otro proyecto, entonces debería considerar excluirla para separar el paquete.

Creo que una buena idea es mirar algunos proyectos en github y ver cómo otros manejan esto.

+0

En realidad, no sé cómo funciona github o cómo encontrar un proyecto que coincida con lo que quiero hacer en un tiempo decente. Pero lo que dices es: haz 1 bundle (appBundle o coreBundle) que tendrá el sitio web básico y luego partes especiales que podrían usarse para otros proyectos (galería y tienda) ¿tienen su propio paquete? –

+0

Sí, exactamente. Este enfoque tiene varias ventajas. Ej. 1) Es un poco más eficiente 2) Puedes ver lo que puedes usar en otros lugares a primera vista. 3) OMI es más fácil administrar sus pruebas de esta manera 4) Su aplicación es más "portátil". Además de partes independientes de su aplicación, puede considerar crear un paquete separado para cosas útiles (como, por ejemplo, una clase matemática o clase que defina estados http, etc.) o una parte que, lógicamente, es muy diferente de la aplicación (por ejemplo, AdminBundle). Y, en general, después de muchas exploraciones, descubrí que esta es la solución más conveniente y popular. – Cyprian

2

Consulte las siguientes preguntas y mis respuestas a ellos:

Básicamente, en mis últimos proyectos que no estoy usando paquetes de aplicación específica código; la única excepción es para las cosas que están codificadas de forma rígida en un paquete, como los accesorios Doctrine, que puse en AppBundle. Todo lo demás (modelos, controladores, servicios, tipos de formularios, etc.) están fuera de cualquier paquete.

+0

Gracias por su respuesta, soy nuevo en Symfony2 en este momento, por lo que cambiar mucho en la configuración básica podría no ser algo inteligente por el momento. Pero voy a echar un vistazo a este enfoque. –

+0

Hola, Elnur, he leído algunos de tus otros hilos y no entiendo cómo colocas elementos como controladores, formularios, etc. fuera de cualquier paquete. Como funciona exactamente? ¿Qué propósito tienen los paquetes para usted en realidad? –

+0

Planeo ampliar mi respuesta en la primera pregunta de la lista que di aquí con ejemplos de definición de controladores, formularios, etc. fuera de los paquetes. Solo necesito algo de tiempo. –

1

Me gusta @Cyprian dijo que un paquete es un conjunto de funcionalidades que puede funcionar solo. Tal como sucede durante el desarrollo, no siempre sabemos cuándo las cosas están separadas. Viene con el tiempo.

Personalmente, estoy trabajando con Symfony2 desde febrero y nunca he dejado de leer el manual y los libros relacionados para comprender más en profundidad. Eso ayudó mucho y es muy interesante leer, te lo aseguro :)

Aquí está mi top favourites documentation pages, en enlightening blog posts on delicious.

Para su pregunta inmediata, olvídese de "frontend" y "back-end" como lo estábamos haciendo en Symfony 1.x. Solo piense en las entidades del Modelo (como en UNA fila ÚNICA) y construya en un paquete. A medida que su código crezca, verá cómo desensamblar y separar en paquetes. Solo debes tener en cuenta que debes separar tus funcionalidades en pequeños métodos y refactorizarlas.

Cuestiones relacionadas