6 votes

Y a-t-il des cadres PHP (par exemple CodeIgniter) qui prennent en charge les connexions à la base de données sur une base de compte utilisateur pour une utilisation dans une base de données multi-loca

Je recherche le développement d'une application SaaS multi-locataire et j'ai trouvé plusieurs sites qui décrivent une méthode solide pour séparer les données en utilisant des tenantIDs et des vues actualisables. par exemple, ce post de blog

Tout repose sur la capacité à authentifier vos comptes utilisateur à partir d'une table d'utilisateurs maîtres, puis à utiliser ces informations d'identification spécifiques à l'utilisateur pour les connexions à leur base de données respective. De cette façon, les vues peuvent extraire l'ID utilisateur et le mapper sur le tenantID pour afficher la vue de cet utilisateur. Cependant, la plupart des frameworks PHP ont tendance à être très statiques en ce qui concerne les connexions à la base de données (stockées dans des fichiers de configuration texte). Ils semblent être en conflit.

Est-ce que quelqu'un sait : a) comment faire en sorte que CodeIgniter gère cela de manière élégante ? b) un autre framework PHP qui pourrait le faire ?

4voto

Phil Sturgeon Points 19227

À un niveau horriblement bas, vous pouvez faire ceci:

http://philsturgeon.co.uk/blog/2009/06/How-to-Multi-site-CodeIgniter-Set-up

Étendez-le selon vos besoins, ou déplacez la logique dans MY_Controller pour plus de flexibilité.

1voto

Eric Allen Points 268

Il y a un sujet parlant de cela sur les forums de Code Igniter.

http://codeigniter.com/forums/viewthread/165227/#846845

Il semble que vous avez configuré votre base de données utilisateurs comme base de données principale dans le fichier de configuration, puis vous générez un tableau de configuration pour une nouvelle connexion pour un utilisateur en fonction des informations dans cette base de données utilisateurs. Donc, je suppose que vous devriez au moins stocker le nom de la base de données dans la base de données utilisateurs.

Je ne suis pas sûr que cela fonctionne bien, car je n'ai pas encore eu l'occasion de l'essayer.

Désolé si ce n'est pas tout à fait ce que vous recherchiez, mais cela devrait vous donner une idée d'une approche Code Igniter.

0voto

shurik2533 Points 460

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X