http://bashmach.blogspot.com/main/messages/history
http://bashmach.blogspot.com/admin/messages/mgmt
а есть такие, более красивые (как по мне):
http://bashmach.blogspot.com/messages/history
http://bashmach.blogspot.com/admin/messages/mgmt
Решил я в целях skill up-a реализовать подобное на ZF.
Для начала "насетапим" ZF и определимся с файловой структурой.
Я сделал так:

В корне в папке application создал директорию modules в которой разместил свои модули. Важно! При добавлении контроллеров следует помнить, что в имя класса контроллера необходимо добавить префикс-имя модуля (для всех, кроме модуля по умолчанию).
require_once 'Zend/Controller/Action.php';
class Admin_IndexController extends Zend_Controller_Action
{
public function init()
{
$this->view->title = 'Module :: Admin';
}
public function indexAction()
{
$this->view->content = 'Module :: Admin :: Content';
}
}
Теперь нужно добавить пути к модулям и контроллерам, а также задать маршруты.
Глубоко не вдаваясь в инициализацию всего приложения:
$frontController = Zend_Controller_Front::getInstance();
$frontController->addModuleDirectory(self::$paths->modules);
$frontController->setControllerDirectory(array(
'admin' => self::$paths->modules . 'admin/controllers',
'main' => self::$paths->modules . 'main/controllers',
'ajax' => self::$paths->modules . 'ajax/controllers',
));
$request = new Zend_Controller_Request_Http();
$router = new Zend_Controller_Router_Rewrite();
$router->addRoutes(array(
'main' => new Zend_Controller_Router_Route('/:controller/:action/*', array('module' => 'main', 'controller' => 'index', 'action' => 'index')),
'admin' => new Zend_Controller_Router_Route('/admin/:controller/:action/*', array('module' => 'admin', 'controller' => 'index', 'action' => 'index')),
'ajax' => new Zend_Controller_Router_Route('/ajax/:controller/:action/*', array('module' => 'ajax', 'controller' => 'index', 'action' => 'index'))
));
$frontController->setDefaultModule('main');
$frontController->setDefaultControllerName('index');
$frontController->setRequest($request);
$frontController->setRouter($router);
$frontController->dispatch();
И вот что у меня получилось:
echo $this->url(array('controller' => 'foo', 'action' => 'index'))
// http://bashmach.blogspot.com/foo
echo $this->url(array('controller' => 'foo', 'action' => 'test'), 'admin')
// http://bashmach.blogspot.com/admin/foo/test

