According to the Symfony2 documentation:
In Symfony2, a package is similar to a plugin, except that all the code in your application will live inside the package. A package is nothing more than a directory in which everything related to a particular function is stored, including PHP classes, configuration, and even style sheets and Javascript files (see. The Bundle System).
Personally, following this description, I would install SystemUserBundle to contain the Doctrine2 model and / js / css / images templates that are specifically related to client management, rather than splitting them into CoreBundle and ResourceBundle. However, dividing your application into SystemUserBundle and MessagingBundle sounds like a smart approach.
I like to think about it this way - does this package encapsulate any behavior that I might need, or want to connect to the future Symfony project (s) in which I participate. For example, customer management is something that can be applied to any application and be reused for projects (indeed, therefore there is an extensible FOSUserBundle).
I donβt think that Symfony2 documents describe packages in sufficient detail (yet!), But if you havenβt found all the relevant sections, these are the ones I know about:
source share