How do common web frameworks (Django, Rails, Symfony, etc) handle multiple instances of the same plu
- by Steven Wei
Do any of the popular web frameworks solve this problem well?
Here's an example: suppose you're running one of these web frameworks and you want to install a blog plugin. Except instead of a single blog, you need to run two separate instances of the blog plugin, and you want to keep them segregated.
Or say you want to install multiple instances of a user authentication plugin, because you want to segregate your administrative users from your customer user accounts.
Or say you want to install multiple instances of a wiki plugin for different parts of your site, or multiple instances of a comments plugin, or whatever else.
It seems to me that at the basic level, each instance of plugin would need to be able to configured with a different set of database tables, and would need to be 'installed' at a different URL path.
My experience is mostly with Django and Symfony, and I haven't seen a clean solution to this problem in either of them. They both tend to assume that each plugin (or app, in Django's case) is only ever going to be installed once.
I'm curious if the Rails folks have figured out a clean solution to this problem, or any other framework authors (in any language).
And if you were going to design a solution to this problem, what would it look like?