Editar: I don't use bundles for app-specific code anymore.
Personalmente prefiero tener un paquete por una sección de una aplicación.Por ejemplo:
- UserBundle
- BlogBundle
- ForumBundle
- JobBundle
- StoreBundle
- etc
Esto está bien si la aplicación es una mezcolanza de varias funcionalidades, ninguno de los cuales es lo suficientemente grande como para requerir una aplicación separada y/o un subdominio . Pero si yo estaba desarrollando un gran applicaton tienda web, mis paquetes serían más específica:
- UserBundle
- ProductBundle
- CartBundle
- SearchBundle
- WishlistBundle
- etc
Entonces, yo diría que depende del enfoque del proyecto. Lo que es solo una sección para un proyecto podría ser la funcionalidad central de otro.
Y por lo general tienen CommonBundle, donde toda la materia común va, como CSS global, imágenes, diseños, etc.
También hay al menos dos opciones para la organización de back-end:
- cada paquete tiene su propia sección backend, o
- hay un gran paquete de back-end.
Personalmente me inclino por la primera opción y se puede leer sobre él en mi previous answer, pero hay personas que prefieren tener un paquete separado para todo el back-end - probablemente utilizando uno de los admin bundles.
Por cierto, está perfectamente bien que los paquetes estén interconectados; no es necesario que sean independientes entre sí. Por ejemplo, JMSDiExtraBundle depende de la biblioteca metadata y JMSAopBundle, que a su vez depende de cg-library. Si intenta mantener los paquetes totalmente independientes, terminará con grandes cantidades monolíticas de códigos de paquete único.
Esto parece que podría llevar a ser una "pregunta de discusión". Además, muchas respuestas son igualmente válidas aquí sin algún ejemplo concreto del problema. Las diferentes combinaciones de entidades podrían cambiar la respuesta, por ejemplo: 'Usuario' y' Organización '(suponiendo que haya otras dependencias en la Organización dentro del sistema) - Diferentes paquetes. 'BlogPost' y' BlogPostRevision' - Mismo paquete. En parte, es una intuición basada en el diseño del sistema: un paquete debe encapsular algunas funcionalidades que usted considere cohesivas. – Kasheen