На самом деле это один из параметров, подробно описанных в http://framework.zend.com/manual/en/zend.controller.modular.html
Ваш путь звучит хорошо, и смысл ZF в том, что вы можете сами выбирать, как управлять вещами. Одно преимущество немного меньше кода. В подходе Zend по умолчанию вы должны использовать это:
$front = Zend_Controller_Front::getInstance();
$front->addControllerDirectory('/path/to/application/controllers', 'default');
$front->addModuleDirectory('/path/to/application/modules');
В то время как в подходе вы описываете:
$front = Zend_Controller_Front::getInstance();
$front->addModuleDirectory('/path/to/application/modules');
Это все, что вам нужно.
Одним из преимуществ подхода Zend является то, что если вам не нужны модули, тогда нет необходимости запускать метод addModuleDirectory (). При вашем подходе это всегда нужно запускать, потенциально создавая небольшие накладные расходы.
На этой странице http://framework.zend.com/manual/en/project-structure.project.html говорится, что каталог по умолчанию для контроллеров «внутри каталога приложения обеспечивает лучший макет для запуска простого проекта, а также для запуска модульного проекта, который имеет глобальные контроллеры / модели / представления». *
Я полагаю, что точка зрения Зенда заключается в том, что это работает как для простых сайтов с модулем по умолчанию, так и для более сложных с несколькими модулями. Нетрудно разработать дополнительные модули в каталоге modules /. Но в конце концов, это личное предпочтение.