The Conventional Modular directory structure allows you to separate different MVC applications into self-contained units, and re-use them with different front controllers. To illustrate such a directory structure:
docroot/
index.php
application/
default/
controllers/
IndexController.php
FooController.php
models/
views/
scripts/
index/
foo/
helpers/
filters/
blog/
controllers/
IndexController.php
models/
views/
scripts/
index/
helpers/
filters/
news/
controllers/
IndexController.php
ListController.php
models/
views/
scripts/
index/
list/
helpers/
filters/
In this paradigm, the module name serves as a prefix to the
controllers it contains. The above example contains three
module controllers, 'Blog_IndexController',
'News_IndexController', and
'News_ListController'.
Two global controllers, 'IndexController' and
'FooController' are also defined; neither of these will be
namespaced. This directory structure will be used for examples in
this chapter.
No Namespacing in the Default Module
Note that in the default module, controllers do not need a
namespace prefix. Thus, in the example above, the controllers in
the default module do not need a prefix of 'Default_' -- they
are simply dispatched according to their base controller name:
'IndexController' and
'FooController'. A namespace prefix is
used in all other modules, however.
So, how do you implement such a directory layout using the Zend Framework MVC components?




