Putting it in a box

My company has asked us to create a program that would be able to be customized then implemented many times. We have a core code base which includes the entire MVC structure. We would like to have that core separated from the customizations (kept in a box) but still give the flexibility to create your own entire set of MVC to work with our core. I know I can't make plugins with Controllers and Models, but that's kinda the idea we are looking for. I already know about engines, and that is perfect, but we are a little worried about the future. The last thing I need is to spend 12 months on a project that is dependent upon someone else's plugin.

What are your thoughts? Is there another approach to enable this kind of plugin-type functionality with Controllers and Models?

Thanks!

Gary Winklosky wrote:

You can write plugins that generate controllers, models, views, migration scripts based on templates in your plugin. If your core is stable that could be an option.

Could you point me in a direction for more information about this? It sounds like it's exactly what I need.