Bonjour à tous,

Je me suis mis à Symfony2 il y a peu de temps. J'ai lu beaucoup de documentation (sur le site officiel) et également un livre (Symfony2 , Développez des sites web PHP structurés et performants de Bilal Amarni) mais je n'ai pas trouvé la réponse à cette question : comment organiser mon projet pour gérer correctement un front office et un back office ?

Bien sûr, je peux le faire. Mais quelle est la meilleure façon de faire ? Quelles sont les best-practices à ce sujet ?

Voici en détail ce que j'aimerais avoir :
  1. un front-office avec :
    • un layout spécifique
    • des assets (CSS, JS, images) non partagés avec le back
    • un user de base de données avec des droits spécifiques au front (par exemple, pas de "delete" autorisés, lecture de certaines tables interdites, etc.)
    • une gestion d'utilisateurs (certains utilisateurs peuvent se connecter au front mais pas au back, et les utilisateurs du back peuvent tous se connecter au front)

  2. un back-office avec :
    • un layout spécifique
    • des assets (CSS, JS, images) non partagés avec le front
    • un user de base de données avec des droits spécifiques au back (par exemple, "delete" autorisés, etc.)
    • une gestion d'utilisateurs (certains utilisateurs peuvent se connecter au front mais pas au back, et les utilisateurs du back peuvent tous se connecter au front)

  3. des modèles et configuration partagés entre les deux parties précédentes
    • la base de données étant commune, je voudrais que mes "entities" Doctrine soit communes
    • les routes du front devraient être accessible depuis le back (par exemple, pour générer des URL dans des emails, via les routes)



Sachant tout cela, quelle répartition me suggérez-vous ?
Dans des bundles séparés ? (pourtant la documentation officiel préconise d'en avoir un seul nommé AppBundle)
Dans des projets différents ? Dans, ce cas, quid des modèles et configuration partagés ?
Autrement ?

Merci d'avance pour vos réponses.