2016-12-07 1 views
0

J'ai projet Symfony3 où je veux des ensembles d'administration Sonata complètement séparés de l'application principale. Les applications principales et les utilisateurs de sonates sont des entités différentes qui ne se croisent jamais. Tous les paramètres de sécurité sont également indépendants et différents. En outre, à l'avenir, il y aura un autre sous-système d'administration - complètement différent de l'actuel pour un autre aspect de l'application. Je pense aux environnements différents ou au noyau de remplacement (par this methodics) et j'ai besoin de savoir comment spécifier les paramètres de sécurité par environnement (si l'approche est correcte et ne fera pas exploser le framework) ou de le rendre sélectionnable en surchargeant le noyau. Ou ... quelle que soit l'approche que vous connaissez pour le faire.Comment utiliser différents fichiers security.yml/paramètres de sécurité?

Ma version de Symfony est 3.1.

Répondre

2

Vous pouvez créer de nouveaux environnements en plus des prod existants, dev et test ceux, comme décrit dans la documentation How to Master and Create new Environments. Cela vous donnera accès à un nouveau fichier de configuration (config_[your_new_environment].yml), qui à son tour pourrait charger un fichier security.yml différent dans l'instruction imports et remplacer les valeurs par défaut.

Exemple:

// config_sonata.yml 

imports: 
    - { resource: config.yml } 
    - { resource: security_sonata.yml } 

Dans votre cas cependant, je voudrais tout d'abord étudier en utilisant différents pare-feu dans le cadre du fichier principal security.yml. Si les URL que vous souhaitez sécuriser dans vos différentes applications ne se chevauchent pas, vous pouvez simplement add more firewalls et user providers. Cela devrait vous permettre de couvrir tous vos besoins et de tout garder au même endroit.

+0

Merci pour votre réponse. En fait mon échec que j'ai manqué l'importation security.yml déclaration dans le fichier de configuration et pensé qu'il est chargé de manière différente. Donc, je vais utiliser un security.yml si possible et il semble facile de les séparer si cela est nécessaire. Je suppose que l'utilisation de différents paramètres de sécurité par environnement est correcte et prise en charge. Btw avez-vous déjà configuré un projet avec différents paramètres de sécurité? Y a-t-il des problèmes avec cela dans votre expérience? – Arkemlar

+0

Non, je n'ai jamais eu à utiliser des fichiers de sécurité par environnement. Comme je n'ai jamais d'URL qui se chevauchent, tout peut être pris en charge dans le fichier de sécurité standard. Si cela arrivait cependant, je pense que je créerais différentes applications. Et s'il y avait du code à partager entre ces applications, je placerais tout dans un paquet. Je pense que le problème principal avec plusieurs environnements est que ce n'est pas très standard. Vous savez pourquoi vous l'avez fait, mais il ne sera pas évident pour un nouveau développeur de se lancer dans le projet. – PapyDanone

+0

Eh bien, j'espère que cela fonctionnera .. Séparation des environnements a une raison évidente comme le chargement des paquets sonata dans le noyau uniquement pour la section admin, et les configurations complexes et les paramètres de sécurité nécessaires pour gérer deux backends admin plus application principale. – Arkemlar