Layering with Zend Framework

Just curious how people deal with multiple tenants using Zend (specifically directory structure, database, modularity, tenant views, etc.). I haven't found too many, anyone?

+2


source to share


1 answer


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).

+5


source







All Articles