Layering with Zend Framework
It takes a little work, but it's doable. I'm not sure how much my approach follows the strict definition of multi-rent, but in case it gives you some ideas:
I have one setup of my application that pretty much follows the recommended project structure ( http://framework.zend.com/manual/en/project-structure.project.html ). Then I have one ZF app per site using the app. Each includes a symbolic link to the main application (currently in the library folder, although this may change). All site applications use the main bootstrap boot class, but they have their own configuration files.
The application includes a large number of modules, each of which may or may not be included on each site. I have a _initModules () method in bootstrap that asks the development database which modules should be included. Then they are loaded in the usual way.
Additional view paths can be added to Zend_View (which are checked in order), so the site adds its own stack path. This way, sites can easily override the views that are in the main application. It would also be possible to add the model directory for the site to the include_path, which would allow sites to override application models, although I haven't found the need for this yet (and will likely have a performance impact).
source to share